Skip to content

Commit 3a9be9d

Browse files
committed
fix: exo issues with calendars and bulk request
1 parent ba19ea8 commit 3a9be9d

File tree

3 files changed

+22
-13
lines changed

3 files changed

+22
-13
lines changed

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Administration/Invoke-ExecEditCalendarPermissions.ps1

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using namespace System.Net
22

3-
Function Invoke-ExecEditCalendarPermissions {
3+
function Invoke-ExecEditCalendarPermissions {
44
<#
55
.FUNCTIONALITY
66
Entrypoint
@@ -16,9 +16,9 @@ Function Invoke-ExecEditCalendarPermissions {
1616

1717
# Extract parameters from query or body
1818
$TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter
19-
$UserID = $Request.Query.UserID ?? $Request.Body.UserID
19+
$UserID = $Request.Query.userid ?? $Request.Body.userid
2020
$UserToGetPermissions = $Request.Query.UserToGetPermissions ?? $Request.Body.UserToGetPermissions.value
21-
$Permissions = @($Request.Query.Permissions) ?? @($Request.Body.Permissions.value)
21+
$Permissions = $Request.Query.Permissions ?? $Request.Body.Permissions.value
2222
$FolderName = $Request.Query.FolderName ?? $Request.Body.FolderName
2323
$RemoveAccess = $Request.Query.RemoveAccess ?? $Request.Body.RemoveAccess.value
2424

@@ -32,6 +32,8 @@ Function Invoke-ExecEditCalendarPermissions {
3232
} catch {
3333
$Result = $_.Exception.Message
3434
$StatusCode = [HttpStatusCode]::Forbidden
35+
Write-Warning "Error in ExecEditCalendarPermissions: $($_.Exception.Message)"
36+
Write-Information $_.InvocationInfo.PositionMessage
3537
}
3638

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

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

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,17 @@ function New-ExoBulkRequest {
8585
}
8686
$BatchBodyJson = ConvertTo-Json -InputObject $BatchBodyObj -Depth 10
8787
$Results = Invoke-RestMethod $BatchURL -ResponseHeadersVariable responseHeaders -Method POST -Body $BatchBodyJson -Headers $Headers -ContentType 'application/json; charset=utf-8'
88-
$ReturnedData.AddRange(@($Results.responses))
88+
foreach ($Response in $Results.responses) {
89+
$ReturnedData.Add($Response)
90+
}
8991

9092
Write-Host "Batch #$($batches.IndexOf($batch) + 1) of $($batches.Count) processed"
9193
}
9294
} catch {
9395
# Error handling (omitted for brevity)
9496
}
9597

96-
Write-Information ($ReturnedHeaders | ConvertTo-Json -Depth 10)
98+
#Write-Information ($responseHeaders | ConvertTo-Json -Depth 10)
9799

98100
# Process the returned data
99101
if ($ReturnWithCommand) {
@@ -114,13 +116,14 @@ function New-ExoBulkRequest {
114116
}
115117
$body | Add-Member -MemberType NoteProperty -Name 'value' -Value $msg -Force
116118
}
117-
$resultValue = $body.value
118-
119-
if (-not $FinalData.ContainsKey($CmdletName)) {
120-
$FinalData[$CmdletName] = [System.Collections.Generic.List[object]]::new()
121-
$FinalData.$CmdletName.Add($resultValue)
122-
} else {
123-
$FinalData.$CmdletName.Add($resultValue)
119+
$resultValues = $body.value
120+
foreach ($resultValue in $resultValues) {
121+
if (-not $FinalData.ContainsKey($CmdletName)) {
122+
$FinalData[$CmdletName] = [System.Collections.Generic.List[object]]::new()
123+
$FinalData.$CmdletName.Add($resultValue)
124+
} else {
125+
$FinalData.$CmdletName.Add($resultValue)
126+
}
124127
}
125128
}
126129
} else {

Modules/CIPPCore/Public/Set-CIPPCalendarPermission.ps1

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ function Set-CIPPCalendarPermission {
1313
)
1414

1515
try {
16+
1617
# If a pretty logging name is not provided, use the ID instead
1718
if ([string]::IsNullOrWhiteSpace($LoggingName) -and $RemoveAccess) {
1819
$LoggingName = $RemoveAccess
@@ -25,6 +26,7 @@ function Set-CIPPCalendarPermission {
2526
AccessRights = @($Permissions)
2627
User = $UserToGetPermissions
2728
}
29+
2830
if ($RemoveAccess) {
2931
if ($PSCmdlet.ShouldProcess("$UserID\$folderName", "Remove permissions for $LoggingName")) {
3032
$null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-MailboxFolderPermission' -cmdParams @{Identity = "$($UserID):\$folderName"; User = $RemoveAccess }
@@ -43,7 +45,9 @@ function Set-CIPPCalendarPermission {
4345
}
4446
}
4547
} catch {
46-
$ErrorMessage = Get-CippException -Message $_
48+
$ErrorMessage = Get-CippException -Exception $_
49+
Write-Warning "Error changing calendar permissions $($_.Exception.Message)"
50+
Write-Information $_.InvocationInfo.PositionMessage
4751
$Result = "Failed to set calendar permissions for $LoggingName on $UserID : $($ErrorMessage.NormalizedError)"
4852
Write-LogMessage -headers $Headers -API $APIName -tenant $TenantFilter -message $Result -sev Error -LogData $ErrorMessage
4953
throw $Result

0 commit comments

Comments
 (0)