Skip to content

Commit 816323b

Browse files
committed
fix: enhance result processing in mailbox permissions and orchestration triggers
1 parent 3ef06a1 commit 816323b

2 files changed

Lines changed: 16 additions & 8 deletions

File tree

Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Mailbox Permissions/Push-StoreMailboxPermissions.ps1

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,25 +40,28 @@ function Push-StoreMailboxPermissions {
4040
$ActualResult = $BatchResult[0]
4141
}
4242

43-
if ($ActualResult -and $ActualResult -is [hashtable]) {
43+
if ($ActualResult -and ($ActualResult -is [hashtable] -or $ActualResult -is [System.Collections.IDictionary])) {
4444
Write-Information "Processing hashtable result with keys: $($ActualResult.Keys -join ', ')"
4545
# Results are grouped by cmdlet name due to ReturnWithCommand
4646
if ($ActualResult['Get-MailboxPermission']) {
47-
Write-Information "Adding $($ActualResult['Get-MailboxPermission'].Count) mailbox permissions"
48-
$AllMailboxPermissions.AddRange($ActualResult['Get-MailboxPermission'])
47+
$MailboxPerms = @($ActualResult['Get-MailboxPermission'])
48+
Write-Information "Adding $($MailboxPerms.Count) mailbox permissions"
49+
$AllMailboxPermissions.AddRange($MailboxPerms)
4950
}
5051
if ($ActualResult['Get-RecipientPermission']) {
51-
Write-Information "Adding $($ActualResult['Get-RecipientPermission'].Count) recipient permissions"
52-
$AllRecipientPermissions.AddRange($ActualResult['Get-RecipientPermission'])
52+
$RecipientPerms = @($ActualResult['Get-RecipientPermission'])
53+
Write-Information "Adding $($RecipientPerms.Count) recipient permissions"
54+
$AllRecipientPermissions.AddRange($RecipientPerms)
5355
}
5456
if ($ActualResult['Get-Mailbox']) {
5557
$SendOnBehalfRows = @($ActualResult['Get-Mailbox'])
5658
Write-Information "Adding $($SendOnBehalfRows.Count) send-on-behalf permissions"
5759
$AllSendOnBehalfPermissions.AddRange($SendOnBehalfRows)
5860
}
5961
if ($ActualResult['Get-MailboxFolderPermission']) {
60-
Write-Information "Adding $($ActualResult['Get-MailboxFolderPermission'].Count) calendar permissions"
61-
$AllCalendarPermissions.AddRange($ActualResult['Get-MailboxFolderPermission'])
62+
$CalendarPerms = @($ActualResult['Get-MailboxFolderPermission'])
63+
Write-Information "Adding $($CalendarPerms.Count) calendar permissions"
64+
$AllCalendarPermissions.AddRange($CalendarPerms)
6265
}
6366
} else {
6467
Write-Information "Skipping non-hashtable result: $($ActualResult.GetType().Name)"

Modules/CippEntrypoints/CippEntrypoints.psm1

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ function Receive-CippQueueTrigger {
176176
param($QueueItem, $TriggerMetadata)
177177

178178
Write-Information '####### Starting CIPP Queue Trigger'
179-
Write-Information "QueueItem: $($QueueItem | ConvertTo-Json -Depth 10 -Compress)"
179+
$QueueItem = $QueueItem | ConvertTo-Json -Depth 10 | ConvertFrom-Json
180180
Set-Location (Get-Item $PSScriptRoot).Parent.Parent.FullName
181181

182182
if (Get-Command -Name $QueueItem.Cmdlet -Module CIPPCore -ErrorAction SilentlyContinue) {
@@ -264,6 +264,8 @@ function Receive-CippOrchestrationTrigger {
264264
$Batch = @()
265265
}
266266

267+
$Batch = @($Batch | Where-Object { $null -ne $_.FunctionName })
268+
267269
if (($Batch | Measure-Object).Count -gt 0) {
268270
Write-Information "Batch Count: $($Batch.Count)"
269271
$Output = foreach ($Item in $Batch) {
@@ -301,6 +303,9 @@ function Receive-CippOrchestrationTrigger {
301303
} else {
302304
$Results = $Output
303305
}
306+
} else {
307+
Write-Information 'No activities to execute in batch'
308+
$Results = @()
304309
}
305310

306311
if ($Results -and $OrchestratorInput.PostExecution) {

0 commit comments

Comments
 (0)