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