Skip to content

Commit 3b83c0e

Browse files
committed
fix: things with listing admin roles better
1 parent 9ca9401 commit 3b83c0e

File tree

1 file changed

+26
-15
lines changed

1 file changed

+26
-15
lines changed
Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Function Invoke-ListRoles {
1+
function Invoke-ListRoles {
22
<#
33
.FUNCTIONALITY
44
Entrypoint
@@ -9,23 +9,34 @@ Function Invoke-ListRoles {
99
param($Request, $TriggerMetadata)
1010
# Interact with query parameters or the body of the request.
1111
$TenantFilter = $Request.Query.tenantFilter
12-
$SelectList = 'id', 'displayName', 'userPrincipalName'
1312

14-
[System.Collections.Generic.List[PSCustomObject]]$Roles = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter
15-
$GraphRequest = foreach ($Role in $Roles) {
16-
17-
#[System.Collections.Generic.List[PSCustomObject]]$Members = New-GraphGetRequest -uri "https://graph.microsoft.com/beta/directoryRoles/$($Role.id)/members?`$select=$($SelectList -join ',')" -tenantid $TenantFilter | Select-Object $SelectList
18-
$Members = if ($Role.members) { $role.members | ForEach-Object { " $($_.displayName) ($($_.userPrincipalName))" } } else { 'none' }
19-
[PSCustomObject]@{
20-
DisplayName = $Role.displayName
21-
Description = $Role.description
22-
Members = $Members -join ','
13+
try {
14+
[System.Collections.Generic.List[PSCustomObject]]$Roles = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/directoryRoles?`$expand=members" -tenantid $TenantFilter
15+
$GraphRequest = foreach ($Role in $Roles) {
16+
$Members = if ($Role.members) {
17+
$Role.members | ForEach-Object { [PSCustomObject]@{
18+
displayName = $_.displayName
19+
userPrincipalName = $_.userPrincipalName
20+
id = $_.id
21+
} }
22+
}
23+
[PSCustomObject]@{
24+
Id = $Role.id
25+
roleTemplateId = $Role.roleTemplateId
26+
DisplayName = $Role.displayName
27+
Description = $Role.description
28+
Members = @($Members)
29+
}
2330
}
31+
$StatusCode = [HttpStatusCode]::OK
32+
} catch {
33+
$ErrorMessage = Get-CippException -Exception $_
34+
"Failed to list roles for tenant $TenantFilter. $($ErrorMessage.NormalizedError)"
35+
$StatusCode = [HttpStatusCode]::BadRequest
2436
}
2537

2638
return [HttpResponseContext]@{
27-
StatusCode = [HttpStatusCode]::OK
28-
Body = $GraphRequest
29-
}
30-
39+
StatusCode = $StatusCode
40+
Body = $GraphRequest
41+
}
3142
}

0 commit comments

Comments
 (0)