Skip to content

Commit 0d43328

Browse files
Merge pull request KelvinTegelaar#1397 from Jr7468/dev
Add Exchange Recipient Limits Management
2 parents 9337c14 + 5793d1b commit 0d43328

File tree

3 files changed

+59
-5
lines changed

3 files changed

+59
-5
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
function Invoke-ExecSetRecipientLimits {
2+
<#
3+
.FUNCTIONALITY
4+
Entrypoint
5+
.ROLE
6+
Exchange.Mailbox.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 -tenant $TenantFilter -message 'Accessed this API' -Sev 'Debug'
14+
15+
# Interact with the query or body of the request
16+
$TenantFilter = $Request.Body.tenantFilter
17+
$recipientLimit = $Request.Body.recipientLimit
18+
$Identity = $Request.Body.Identity
19+
$UserPrincipalName = $Request.Body.userid
20+
21+
# Set the parameters for the EXO request
22+
$ExoRequest = @{
23+
tenantid = $TenantFilter
24+
cmdlet = 'Set-Mailbox'
25+
cmdParams = @{
26+
Identity = $Identity
27+
RecipientLimits = $recipientLimit
28+
}
29+
}
30+
31+
# Execute the EXO request
32+
try {
33+
$null = New-ExoRequest @ExoRequest
34+
$Results = "Recipient limit for $UserPrincipalName has been set to $recipientLimit"
35+
36+
Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Info
37+
$StatusCode = [HttpStatusCode]::OK
38+
} catch {
39+
$ErrorMessage = Get-CippException -Exception $_
40+
$Results = "Could not set recipient limit for $UserPrincipalName to $recipientLimit. Error: $($ErrorMessage.NormalizedError)"
41+
Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage
42+
$StatusCode = [HttpStatusCode]::InternalServerError
43+
}
44+
45+
# Associate values to output bindings by calling 'Push-OutputBinding'.
46+
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
47+
StatusCode = $StatusCode
48+
Body = @{ Results = $Results }
49+
})
50+
}

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Identity/Administration/Users/Invoke-AddUser.ps1

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,20 @@ Function Invoke-AddUser {
3838
} else {
3939
$CreationResults = New-CIPPUserTask -userobj $UserObj -APIName $APINAME -Headers $Request.Headers
4040
$body = [pscustomobject] @{
41-
'Results' = $CreationResults.Results
42-
'Username' = $CreationResults.username
43-
'Password' = $CreationResults.password
41+
'Results' = @(
42+
$CreationResults.Results[0],
43+
$CreationResults.Results[1],
44+
@{
45+
'resultText' = $CreationResults.Results[2]
46+
'copyField' = $CreationResults.password
47+
'state' = 'success'
48+
}
49+
)
4450
'CopyFrom' = @{
4551
'Success' = $CreationResults.CopyFrom.Success
4652
'Error' = $CreationResults.CopyFrom.Error
4753
}
4854
}
49-
5055
}
5156
# Associate values to output bindings by calling 'Push-OutputBinding'.
5257
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{

Modules/CIPPCore/Public/New-CIPPUserTask.ps1

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ function New-CIPPUserTask {
1313
$Results.Add('Created New User.')
1414
$Results.Add("Username: $($CreationResults.Username)")
1515
$Results.Add("Password: $($CreationResults.Password)")
16-
$Results.Add("$($CreationResults.Password)")
1716
} catch {
1817
$Results.Add("Failed to create user. $($_.Exception.Message)" )
1918
return @{'Results' = $Results }

0 commit comments

Comments
 (0)