|
1 |
| -function Invoke-ExecDismissRiskyUser { |
2 |
| - <# |
3 |
| - .FUNCTIONALITY |
4 |
| - Entrypoint |
5 |
| - .ROLE |
6 |
| - Identity.User.ReadWrite |
7 |
| - #> |
8 |
| - [CmdletBinding()] |
9 |
| - param($Request, $TriggerMetadata) |
10 |
| - |
11 |
| - $APIName = $Request.Params.CIPPEndpoint |
12 |
| - $Headers = $Request.Headers |
13 |
| - Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' |
14 |
| - |
15 |
| - # Interact with the query or body of the request |
16 |
| - $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter |
17 |
| - $SuspectUser = $Request.Query.userId ?? $Request.Body.userId |
18 |
| - $userDisplayName = $Request.Query.userDisplayName ?? $Request.Body.userDisplayName |
19 |
| - |
20 |
| - $GraphRequest = @{ |
21 |
| - 'uri' = 'https://graph.microsoft.com/beta/riskyUsers/dismiss' |
22 |
| - 'tenantid' = $TenantFilter |
23 |
| - 'type' = 'POST' |
24 |
| - 'contentType' = 'application/json; charset=utf-8' |
25 |
| - 'body' = @{ |
26 |
| - 'userIds' = @($SuspectUser) |
27 |
| - } | ConvertTo-Json |
28 |
| - } |
29 |
| - |
30 |
| - try { |
31 |
| - $GraphResults = New-GraphPostRequest @GraphRequest |
32 |
| - Write-LogMessage -API $APIName -tenant $TenantFilter -message "Dismissed user risk for $userDisplayName" -sev 'Info' |
33 |
| - $Result = "Successfully dismissed User Risk for user $userDisplayName. $GraphResults" |
34 |
| - $StatusCode = [HttpStatusCode]::OK |
35 |
| - } catch { |
36 |
| - $ErrorMessage = Get-CippException -Exception $_ |
37 |
| - $Result = "Failed to dismiss user risk for $userDisplayName. $($ErrorMessage.NormalizedError)" |
38 |
| - Write-LogMessage -API $APIName -tenant $TenantFilter -message $Result -sev 'Error' -LogData $ErrorMessage |
39 |
| - $StatusCode = [HttpStatusCode]::InternalServerError |
40 |
| - } |
41 |
| - |
42 |
| - # Associate values to output bindings by calling 'Push-OutputBinding'. |
43 |
| - Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ |
44 |
| - StatusCode = $StatusCode |
45 |
| - Body = @{ 'Results' = $Result } |
46 |
| - }) |
47 |
| -} |
| 1 | +function Invoke-ExecDismissRiskyUser { |
| 2 | + <# |
| 3 | + .FUNCTIONALITY |
| 4 | + Entrypoint |
| 5 | + .ROLE |
| 6 | + Identity.User.ReadWrite |
| 7 | + #> |
| 8 | + [CmdletBinding()] |
| 9 | + param($Request, $TriggerMetadata) |
| 10 | + |
| 11 | + $APIName = $Request.Params.CIPPEndpoint |
| 12 | + $Headers = $Request.Headers |
| 13 | + Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug' |
| 14 | + |
| 15 | + # Interact with the query or body of the request |
| 16 | + $TenantFilter = $Request.Query.tenantFilter ?? $Request.Body.tenantFilter |
| 17 | + $SuspectUser = $Request.Query.userId ?? $Request.Body.userId |
| 18 | + $userDisplayName = $Request.Query.userDisplayName ?? $Request.Body.userDisplayName |
| 19 | + |
| 20 | + $GraphRequest = @{ |
| 21 | + 'uri' = 'https://graph.microsoft.com/beta/riskyUsers/dismiss' |
| 22 | + 'tenantid' = $TenantFilter |
| 23 | + 'type' = 'POST' |
| 24 | + 'contentType' = 'application/json; charset=utf-8' |
| 25 | + 'body' = @{ |
| 26 | + 'userIds' = @($SuspectUser) |
| 27 | + } | ConvertTo-Json |
| 28 | + } |
| 29 | + |
| 30 | + try { |
| 31 | + $GraphResults = New-GraphPostRequest @GraphRequest |
| 32 | + Write-LogMessage -API $APIName -tenant $TenantFilter -message "Dismissed user risk for $userDisplayName" -sev 'Info' |
| 33 | + $Result = "Successfully dismissed User Risk for user $userDisplayName. $GraphResults" |
| 34 | + $StatusCode = [HttpStatusCode]::OK |
| 35 | + } catch { |
| 36 | + $ErrorMessage = Get-CippException -Exception $_ |
| 37 | + $Result = "Failed to dismiss user risk for $userDisplayName. $($ErrorMessage.NormalizedError)" |
| 38 | + Write-LogMessage -API $APIName -tenant $TenantFilter -message $Result -sev 'Error' -LogData $ErrorMessage |
| 39 | + $StatusCode = [HttpStatusCode]::InternalServerError |
| 40 | + } |
| 41 | + |
| 42 | + # Associate values to output bindings by calling 'Push-OutputBinding'. |
| 43 | + Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ |
| 44 | + StatusCode = $StatusCode |
| 45 | + Body = @{ 'Results' = $Result } |
| 46 | + }) |
| 47 | +} |
0 commit comments