Skip to content

Commit b60c71b

Browse files
authored
Merge pull request #376 from KelvinTegelaar/dev
[pull] dev from KelvinTegelaar:dev
2 parents 92db8d8 + a851931 commit b60c71b

File tree

12 files changed

+80
-54
lines changed

12 files changed

+80
-54
lines changed
Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
function Add-CIPPAlias {
22
[CmdletBinding()]
33
param (
4-
$user,
4+
$User,
55
$Aliases,
6-
$UserprincipalName,
6+
$UserPrincipalName,
77
$TenantFilter,
88
$APIName = 'Add Alias',
99
$Headers
1010
)
1111

1212
try {
1313
foreach ($Alias in $Aliases) {
14-
Write-Host "Adding alias $Alias to $user"
15-
New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$user" -tenantid $TenantFilter -type 'patch' -body "{`"mail`": `"$Alias`"}" -verbose
14+
Write-Host "Adding alias $Alias to $User"
15+
New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$User" -tenantid $TenantFilter -type 'patch' -body "{`"mail`": `"$Alias`"}" -verbose
1616
}
1717
Write-Host "Resetting primary alias to $User"
18-
New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($user)" -tenantid $TenantFilter -type 'patch' -body "{`"mail`": `"$User`"}" -verbose
19-
Write-LogMessage -headers $Headers -API $APINAME -tenant $($TenantFilter) -message "Added alias $($Alias) to $($UserprincipalName)" -Sev 'Info'
18+
New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$User" -tenantid $TenantFilter -type 'patch' -body "{`"mail`": `"$User`"}" -verbose
19+
Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Added alias $($Alias) to $($UserPrincipalName)" -Sev 'Info'
2020
return ("Added Aliases: $($Aliases -join ',')")
2121
} catch {
22-
Write-LogMessage -headers $Headers -API $APINAME -tenant $($TenantFilter) -message "Failed to set alias. Error:$($_.Exception.Message)" -Sev 'Error'
23-
throw "Failed to set alias: $($_.Exception.Message)"
22+
$ErrorMessage = Get-CippException -Exception $_
23+
Write-LogMessage -headers $Headers -API $APIName -tenant $($TenantFilter) -message "Failed to set alias. Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $ErrorMessage
24+
throw "Failed to set alias: $($ErrorMessage.NormalizedError)"
2425
}
2526
}
2627

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Core/Invoke-ListDirectoryObjects.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
function Invoke-ListDirectoryObjects {
22
<#
33
.FUNCTIONALITY
4-
Entrypoint
4+
Entrypoint,AnyTenant
55
.ROLE
66
CIPP.Core.Read
77
#>
@@ -28,7 +28,7 @@ function Invoke-ListDirectoryObjects {
2828
} | ConvertTo-Json -Depth 10
2929

3030
try {
31-
$Results = New-GraphPOSTRequest -tenantid $TenantFilter -uri $Uri -body $Body -AsApp $AsApp
31+
$Results = New-GraphPOSTRequest -tenantid $TenantFilter -uri $Uri -body $Body -AsApp $AsApp -NoAuthCheck $true
3232
$StatusCode = [System.Net.HttpStatusCode]::OK
3333
} catch {
3434
$StatusCode = [System.Net.HttpStatusCode]::BadRequest

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-EditUser.ps1

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,18 @@ function Invoke-EditUser {
3838
'givenName' = $UserObj.givenName
3939
'surname' = $UserObj.surname
4040
'displayName' = $UserObj.displayName
41-
'department' = $UserObj.Department
42-
'mailNickname' = $UserObj.Username ? $UserObj.username :$UserObj.mailNickname
41+
'department' = $UserObj.department
42+
'mailNickname' = $UserObj.username ? $UserObj.username : $UserObj.mailNickname
4343
'userPrincipalName' = $UserPrincipalName
4444
'usageLocation' = $UserObj.usageLocation.value ? $UserObj.usageLocation.value : $UserObj.usageLocation
45-
'city' = $UserObj.City
46-
'country' = $UserObj.Country
4745
'jobTitle' = $UserObj.jobTitle
48-
'mobilePhone' = $UserObj.MobilePhone
46+
'mobilePhone' = $UserObj.mobilePhone
4947
'streetAddress' = $UserObj.streetAddress
50-
'postalCode' = $UserObj.PostalCode
51-
'companyName' = $UserObj.CompanyName
48+
'city' = $UserObj.city
49+
'state' = $UserObj.state
50+
'postalCode' = $UserObj.postalCode
51+
'country' = $UserObj.country
52+
'companyName' = $UserObj.companyName
5253
'businessPhones' = $UserObj.businessPhones ? @($UserObj.businessPhones) : @()
5354
'otherMails' = $UserObj.otherMails ? @($UserObj.otherMails) : @()
5455
'passwordProfile' = @{
@@ -224,19 +225,13 @@ function Invoke-EditUser {
224225
}
225226

226227
if ($Request.body.setManager.value) {
227-
$ManagerBody = [PSCustomObject]@{'@odata.id' = "https://graph.microsoft.com/beta/users/$($Request.body.setManager.value)" }
228-
$ManagerBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $ManagerBody
229-
$null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)/manager/`$ref" -tenantid $UserObj.tenantFilter -type PUT -body $ManagerBodyJSON -Verbose
230-
Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Set $($UserObj.DisplayName)'s manager to $($Request.body.setManager.label)" -Sev Info
231-
$Results.Add("Success. Set $($UserObj.DisplayName)'s manager to $($Request.body.setManager.label)")
228+
$ManagerResult = Set-CIPPManager -User $UserPrincipalName -Manager $Request.body.setManager.value -TenantFilter $UserObj.tenantFilter -Headers $Headers
229+
$Results.Add($ManagerResult)
232230
}
233231

234232
if ($Request.body.setSponsor.value) {
235-
$SponsorBody = [PSCustomObject]@{'@odata.id' = "https://graph.microsoft.com/beta/users/$($Request.body.setSponsor.value)" }
236-
$SponsorBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $SponsorBody
237-
$null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($UserObj.id)/sponsors/`$ref" -tenantid $UserObj.tenantFilter -type POST -body $SponsorBodyJSON -Verbose
238-
Write-LogMessage -headers $Headers -API $APIName -tenant $UserObj.tenantFilter -message "Set $($UserObj.DisplayName)'s sponsor to $($Request.body.setSponsor.label)" -Sev Info
239-
$Results.Add("Success. Set $($UserObj.DisplayName)'s sponsor to $($Request.body.setSponsor.label)")
233+
$SponsorResult = Set-CIPPSponsor -User $UserPrincipalName -Sponsor $Request.body.setSponsor.value -TenantFilter $UserObj.tenantFilter -Headers $Headers
234+
$Results.Add($SponsorResult)
240235
}
241236

242237
# Associate values to output bindings by calling 'Push-OutputBinding'.

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-ListUserMailboxDetails.ps1

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ function Invoke-ListUserMailboxDetails {
1818
# Interact with query parameters or the body of the request.
1919
$TenantFilter = $Request.Query.tenantFilter
2020
$UserID = $Request.Query.UserID
21+
$UserMail = $Request.Query.userMail
22+
Write-Host "TenantFilter: $TenantFilter"
23+
Write-Host "UserID: $UserID"
24+
Write-Host "UserMail: $UserMail"
2125

2226
try {
2327
$Requests = @(
@@ -53,7 +57,7 @@ function Invoke-ListUserMailboxDetails {
5357
@{
5458
CmdletInput = @{
5559
CmdletName = 'Get-BlockedSenderAddress'
56-
Parameters = @{ Identity = $UserID }
60+
Parameters = @{ SenderAddress = $UserMail }
5761
}
5862
},
5963
@{
@@ -63,7 +67,6 @@ function Invoke-ListUserMailboxDetails {
6367
}
6468
}
6569
)
66-
Write-Host $UserID
6770
$usernames = New-GraphGetRequest -tenantid $TenantFilter -uri 'https://graph.microsoft.com/beta/users?$select=id,userPrincipalName,displayName,mailNickname&$top=999'
6871
$Results = New-ExoBulkRequest -TenantId $TenantFilter -CmdletArray $Requests -returnWithCommand $true -Anchor $username
6972
Write-Host "First line of usernames is $($usernames[0] | ConvertTo-Json)"
@@ -105,9 +108,9 @@ function Invoke-ListUserMailboxDetails {
105108

106109
# Determine if the user is blocked for spam
107110
if ($BlockedSender -and $BlockedSender.Count -gt 0) {
108-
$BlockedForSpam = $false
109-
} else {
110111
$BlockedForSpam = $true
112+
} else {
113+
$BlockedForSpam = $false
111114
}
112115
} catch {
113116
Write-Error "Failed Fetching Data $($_.Exception.message): $($_.InvocationInfo.ScriptLineNumber)"

Modules/CIPPCore/Public/GraphHelper/New-ExoRequest.ps1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ function New-ExoRequest {
44
Internal
55
#>
66
[CmdletBinding(DefaultParameterSetName = 'ExoRequest')]
7-
Param(
7+
param(
88
[Parameter(Mandatory = $true, ParameterSetName = 'ExoRequest')]
99
[string]$cmdlet,
1010

@@ -43,7 +43,7 @@ function New-ExoRequest {
4343
$token = Get-GraphToken -Tenantid $tenantid -scope "$Resource/.default" -AsApp:$AsApp.IsPresent
4444

4545
if ($cmdParams) {
46-
#if cmdparams is a pscustomobject, convert to hashtable, otherwise leave as is
46+
#if cmdParams is a pscustomobject, convert to hashtable, otherwise leave as is
4747
$Params = $cmdParams
4848
} else {
4949
$Params = @{}
@@ -145,7 +145,7 @@ function New-ExoRequest {
145145
} until ($null -eq $URL)
146146

147147
Write-Verbose ($ResponseHeaders | ConvertTo-Json)
148-
if ($ReturnedData.'@adminapi.warnings' -and $ReturnedData.value -eq $null) {
148+
if ($ReturnedData.'@adminapi.warnings' -and $null -eq $ReturnedData.value) {
149149
$ReturnedData.value = $ReturnedData.'@adminapi.warnings'
150150
}
151151
} catch {

Modules/CIPPCore/Public/New-CIPPUserTask.ps1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ function New-CIPPUserTask {
5454

5555
try {
5656
if ($UserObj.AddedAliases) {
57-
$AliasResults = Add-CIPPAlias -user $CreationResults.Username -Aliases ($UserObj.AddedAliases -split '\s') -UserprincipalName $CreationResults.Username -TenantFilter $UserObj.tenantFilter -APIName $APIName -Headers $Headers
57+
$AliasResults = Add-CIPPAlias -User $CreationResults.Username -Aliases ($UserObj.AddedAliases -split '\s') -UserPrincipalName $CreationResults.Username -TenantFilter $UserObj.tenantFilter -APIName $APIName -Headers $Headers
5858
$Results.Add($AliasResults)
5959
}
6060
} catch {
@@ -69,12 +69,12 @@ function New-CIPPUserTask {
6969
}
7070

7171
if ($UserObj.setManager) {
72-
$ManagerResult = Set-CIPPManager -user $CreationResults.Username -Manager $UserObj.setManager.value -TenantFilter $UserObj.tenantFilter -APIName 'Set Manager' -Headers $Headers
72+
$ManagerResult = Set-CIPPManager -User $CreationResults.Username -Manager $UserObj.setManager.value -TenantFilter $UserObj.tenantFilter -Headers $Headers
7373
$Results.Add($ManagerResult)
7474
}
7575

7676
if ($UserObj.setSponsor) {
77-
$SponsorResult = Set-CIPPManager -user $CreationResults.Username -Manager $UserObj.setSponsor.value -TenantFilter $UserObj.tenantFilter -APIName 'Set Sponsor' -Headers $Headers
77+
$SponsorResult = Set-CIPPSponsor -User $CreationResults.Username -Sponsor $UserObj.setSponsor.value -TenantFilter $UserObj.tenantFilter -Headers $Headers
7878
$Results.Add($SponsorResult)
7979
}
8080

Modules/CIPPCore/Public/New-CippUser.ps1

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,19 @@ function New-CIPPUser {
2121
'surname' = $UserObj.surname
2222
'accountEnabled' = $true
2323
'displayName' = $UserObj.displayName
24-
'department' = $UserObj.Department
25-
'mailNickname' = $UserObj.Username ? $UserObj.username : $UserObj.mailNickname
24+
'department' = $UserObj.department
25+
'mailNickname' = $UserObj.username ? $UserObj.username : $UserObj.mailNickname
2626
'userPrincipalName' = $UserPrincipalName
2727
'usageLocation' = $UserObj.usageLocation.value ? $UserObj.usageLocation.value : $UserObj.usageLocation
28-
'city' = $UserObj.City
29-
'country' = $UserObj.Country
30-
'jobtitle' = $UserObj.Jobtitle
31-
'mobilePhone' = $UserObj.MobilePhone
28+
'otherMails' = $UserObj.otherMails ? @($UserObj.otherMails) : @()
29+
'jobTitle' = $UserObj.jobTitle
30+
'mobilePhone' = $UserObj.mobilePhone
3231
'streetAddress' = $UserObj.streetAddress
33-
'postalCode' = $UserObj.PostalCode
34-
'companyName' = $UserObj.CompanyName
32+
'city' = $UserObj.city
33+
'state' = $UserObj.state
34+
'country' = $UserObj.country
35+
'postalCode' = $UserObj.postalCode
36+
'companyName' = $UserObj.companyName
3537
'passwordProfile' = @{
3638
'forceChangePasswordNextSignIn' = [bool]$UserObj.MustChangePass
3739
'password' = $password
Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
function Set-CIPPManager {
22
[CmdletBinding()]
33
param (
4-
$user,
4+
$User,
55
$Manager,
66
$TenantFilter,
77
$APIName = 'Set Manager',
@@ -11,12 +11,13 @@ function Set-CIPPManager {
1111
try {
1212
$ManagerBody = [PSCustomObject]@{'@odata.id' = "https://graph.microsoft.com/beta/users/$($Manager)" }
1313
$ManagerBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $ManagerBody
14-
New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($User)/manager/`$ref" -tenantid $TenantFilter -type PUT -body $ManagerBodyJSON -Verbose
15-
Write-LogMessage -headers $Headers -API $APINAME -tenant $UserObj.tenantID -message "Set $user's manager to $Manager" -Sev 'Info'
14+
$null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($User)/manager/`$ref" -tenantid $TenantFilter -type PUT -body $ManagerBodyJSON
15+
Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Set $User's manager to $Manager" -Sev 'Info'
1616
} catch {
17-
Write-LogMessage -headers $Headers -API $APINAME -tenant $($UserObj.tenantID) -message "Failed to Set Manager. Error:$($_.Exception.Message)" -Sev 'Error'
18-
throw "Failed to set manager: $($_.Exception.Message)"
17+
$ErrorMessage = Get-CippException -Exception $_
18+
Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to Set Manager. Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $_
19+
throw "Failed to set manager: $($ErrorMessage.NormalizedError)"
1920
}
20-
return "Set $user's manager to $Manager"
21+
return "Set $User's manager to $Manager"
2122
}
2223

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
function Set-CIPPSponsor {
2+
[CmdletBinding()]
3+
param (
4+
$User,
5+
$Sponsor,
6+
$TenantFilter,
7+
$APIName = 'Set Sponsor',
8+
$Headers
9+
)
10+
11+
try {
12+
$SponsorBody = [PSCustomObject]@{'@odata.id' = "https://graph.microsoft.com/beta/users/$($Sponsor)" }
13+
$SponsorBodyJSON = ConvertTo-Json -Compress -Depth 10 -InputObject $SponsorBody
14+
$null = New-GraphPostRequest -uri "https://graph.microsoft.com/beta/users/$($User)/sponsors/`$ref" -tenantid $TenantFilter -type PUT -body $SponsorBodyJSON
15+
Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Set $User's sponsor to $Sponsor" -Sev 'Info'
16+
} catch {
17+
$ErrorMessage = Get-CippException -Exception $_
18+
Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message "Failed to Set Sponsor. Error:$($ErrorMessage.NormalizedError)" -Sev 'Error' -LogData $_
19+
throw "Failed to set sponsor: $($_.Exception.Message)"
20+
}
21+
return "Set $user's sponsor to $Sponsor"
22+
}

Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardCloudMessageRecall.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ function Invoke-CIPPStandardCloudMessageRecall {
3838
##$Rerun -Type Standard -Tenant $Tenant -Settings $Settings 'CloudMessageRecall'
3939

4040
# Get state value using null-coalescing operator
41-
$state = $Settings.state.value
41+
$state = $Settings.state.value ?? $Settings.state
4242

4343
$CurrentState = (New-ExoRequest -tenantid $Tenant -cmdlet 'Get-OrganizationConfig').MessageRecallEnabled
4444
$WantedState = if ($state -eq 'true') { $true } else { $false }
@@ -53,7 +53,7 @@ function Invoke-CIPPStandardCloudMessageRecall {
5353

5454
# Input validation
5555
if (([string]::IsNullOrWhiteSpace($state) -or $state -eq 'Select a value') -and ($Settings.remediate -eq $true -or $Settings.alert -eq $true)) {
56-
Write-LogMessage -API 'Standards' -tenant $Tenant -message 'MessageRecallEnabled: Invalid state parameter set' -sev Error
56+
Write-LogMessage -API 'Standards' -tenant $Tenant -message 'CloudMessageRecall: Invalid state parameter set' -sev Error
5757
return
5858
}
5959

0 commit comments

Comments
 (0)