Skip to content

Commit cbddf6b

Browse files
committed
Remove queues from application approval
1 parent 7ee9ba5 commit cbddf6b

File tree

3 files changed

+37
-26
lines changed

3 files changed

+37
-26
lines changed
Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
1-
function Push-ExecAddMultiTenantApp($QueueItem, $TriggerMetadata) {
1+
function Push-ExecAddMultiTenantApp {
22
<#
33
.FUNCTIONALITY
44
Entrypoint
55
#>
6+
[CmdletBinding()]
7+
param($Item)
68
try {
7-
$Queueitem = $QueueItem | ConvertTo-Json -Depth 10 | ConvertFrom-Json
8-
Write-Host "$($Queueitem | ConvertTo-Json -Depth 10)"
9-
$ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -tenantid $Queueitem.Tenant
10-
if ($Queueitem.AppId -Notin $ServicePrincipalList.appId) {
11-
$PostResults = New-GraphPostRequest 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $queueitem.tenant -body "{ `"appId`": `"$($Queueitem.appId)`" }"
12-
Write-LogMessage -message "Added $($Queueitem.AppId) to tenant $($Queueitem.Tenant)" -tenant $Queueitem.Tenant -API 'Add Multitenant App' -sev Info
9+
$Item = $Item | ConvertTo-Json -Depth 10 | ConvertFrom-Json
10+
Write-Host "$($Item | ConvertTo-Json -Depth 10)"
11+
$ServicePrincipalList = New-GraphGETRequest -uri "https://graph.microsoft.com/beta/servicePrincipals?`$select=AppId,id,displayName&`$top=999" -tenantid $Item.Tenant
12+
if ($Item.AppId -Notin $ServicePrincipalList.appId) {
13+
$PostResults = New-GraphPostRequest 'https://graph.microsoft.com/beta/servicePrincipals' -type POST -tenantid $Item.tenant -body "{ `"appId`": `"$($Item.appId)`" }"
14+
Write-LogMessage -message "Added $($Item.AppId) to tenant $($Item.Tenant)" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Info
1315
} else {
14-
Write-LogMessage -message "This app already exists in tenant $($Queueitem.Tenant). We're adding the required permissions." -tenant $Queueitem.Tenant -API 'Add Multitenant App' -sev Info
16+
Write-LogMessage -message "This app already exists in tenant $($Item.Tenant). We're adding the required permissions." -tenant $Item.Tenant -API 'Add Multitenant App' -sev Info
1517
}
16-
Add-CIPPApplicationPermission -RequiredResourceAccess ($queueitem.applicationResourceAccess) -ApplicationId $queueitem.AppId -Tenantfilter $Queueitem.Tenant
17-
Add-CIPPDelegatedPermission -RequiredResourceAccess ($queueitem.DelegateResourceAccess) -ApplicationId $queueitem.AppId -Tenantfilter $Queueitem.Tenant
18+
Add-CIPPApplicationPermission -RequiredResourceAccess ($Item.applicationResourceAccess) -ApplicationId $Item.AppId -Tenantfilter $Item.Tenant
19+
Add-CIPPDelegatedPermission -RequiredResourceAccess ($Item.DelegateResourceAccess) -ApplicationId $Item.AppId -Tenantfilter $Item.Tenant
1820
} catch {
19-
Write-LogMessage -message "Error adding application to tenant $($Queueitem.Tenant) - $($_.Exception.Message)" -tenant $Queueitem.Tenant -API 'Add Multitenant App' -sev Error
21+
Write-LogMessage -message "Error adding application to tenant $($Item.Tenant) - $($_.Exception.Message)" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error
2022
}
2123
}
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
function Push-ExecApplicationCopy($QueueItem, $TriggerMetadata) {
1+
function Push-ExecApplicationCopy {
22
<#
33
.FUNCTIONALITY
44
Entrypoint
55
#>
6+
[CmdletBinding()]
7+
param($Item)
68
try {
7-
$Queueitem = $QueueItem | ConvertTo-Json -Depth 10 | ConvertFrom-Json
8-
Write-Host "$($Queueitem | ConvertTo-Json -Depth 10)"
9-
New-CIPPApplicationCopy -App $queueitem.AppId -Tenant $Queueitem.Tenant
9+
Write-Host "$($Item | ConvertTo-Json -Depth 10)"
10+
New-CIPPApplicationCopy -App $Item.AppId -Tenant $Item.Tenant
1011
} catch {
11-
Write-LogMessage -message "Error adding application to tenant $($Queueitem.Tenant) - $($_.Exception.Message)" -tenant $Queueitem.Tenant -API 'Add Multitenant App' -sev Error
12+
Write-LogMessage -message "Error adding application to tenant $($Item.Tenant) - $($_.Exception.Message)" -tenant $Item.Tenant -API 'Add Multitenant App' -sev Error
1213
}
1314
}

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Tenant/Administration/Application Approval/Invoke-ExecAddMultiTenantApp.ps1

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,34 @@ function Invoke-ExecAddMultiTenantApp {
1717
$ApplicationResourceAccess = @{ ResourceAppId = '00000003-0000-0000-c000-000000000000'; resourceAccess = $ApplicationResources }
1818

1919
$Results = try {
20-
if ($request.body.CopyPermissions -eq $true) {
20+
if ($Request.Body.CopyPermissions -eq $true) {
2121
$Command = 'ExecApplicationCopy'
2222
} else {
2323
$Command = 'ExecAddMultiTenantApp'
2424
}
25-
if ('allTenants' -in $Request.body.SelectedTenants.defaultDomainName) {
25+
if ('allTenants' -in $Request.Body.SelectedTenants.defaultDomainName) {
2626
$TenantFilter = (Get-Tenants).defaultDomainName
2727
} else {
28-
$TenantFilter = $Request.body.SelectedTenants.defaultDomainName
28+
$TenantFilter = $Request.Body.SelectedTenants.defaultDomainName
2929
}
3030

31+
$TenantCount = ($TenantFilter | Measure-Object).Count
32+
$Queue = New-CippQueueEntry -Name 'Application Approval' -TotalTasks $TenantCount
3133
foreach ($Tenant in $TenantFilter) {
3234
try {
33-
Push-OutputBinding -Name QueueItem -Value ([pscustomobject]@{
34-
FunctionName = $Command
35-
Tenant = $tenant
36-
appId = $Request.body.appid
37-
applicationResourceAccess = $ApplicationResourceAccess
38-
delegateResourceAccess = $DelegateResourceAccess
39-
})
35+
$InputObject = @{
36+
OrchestratorName = 'ExecMultiTenantAppOrchestrator'
37+
Batch = @([pscustomobject]@{
38+
FunctionName = $Command
39+
Tenant = $tenant
40+
AppId = $Request.Body.AppId
41+
applicationResourceAccess = $ApplicationResourceAccess
42+
delegateResourceAccess = $DelegateResourceAccess
43+
QueueId = $Queue.RowKey
44+
})
45+
SkipLog = $true
46+
}
47+
$null = Start-NewOrchestration -FunctionName 'CIPPOrchestrator' -InputObject ($InputObject | ConvertTo-Json -Depth 5 -Compress)
4048
"Queued application to tenant $Tenant. See the logbook for deployment details"
4149
} catch {
4250
"Error queuing application to tenant $Tenant - $($_.Exception.Message)"

0 commit comments

Comments
 (0)