Skip to content

Commit 2cb07f9

Browse files
authored
Merge pull request KelvinTegelaar#1166 from kris6673/dev
Add ExternalDirectoryObjectId to ListMailbox, improve logging, and fix calendar permission bug
2 parents cc9f3bd + c8f1243 commit 2cb07f9

3 files changed

Lines changed: 24 additions & 15 deletions

File tree

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/Email-Exchange/Invoke-ExecEditCalendarPermissions.ps1

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,21 @@ Function Invoke-ExecEditCalendarPermissions {
1111
param($Request, $TriggerMetadata)
1212

1313
$APIName = $TriggerMetadata.FunctionName
14-
Write-LogMessage -user $request.headers.'x-ms-client-principal' -API $APINAME -message 'Accessed this API' -Sev 'Debug'
15-
$UserID = ($request.query.UserID)
14+
$User = $Request.headers.'x-ms-client-principal'
15+
Write-LogMessage -user $User -API $APINAME -message 'Accessed this API' -Sev 'Debug'
16+
17+
$UserID = ($Request.query.UserID)
18+
$LoggingName = $Request.query.LoggingName
1619
$UserToGetPermissions = $Request.query.UserToGetPermissions
17-
$Tenantfilter = $request.Query.tenantfilter
20+
$Tenantfilter = $Request.Query.tenantfilter
1821
$Permissions = @($Request.query.permissions)
1922
$folderName = $Request.query.folderName
2023

21-
2224
try {
2325
if ($Request.query.removeaccess) {
24-
$result = Set-CIPPCalendarPermission -UserID $UserID -folderName $folderName -RemoveAccess $Request.query.removeaccess -TenantFilter $TenantFilter
26+
$Result = Set-CIPPCalendarPermission -UserID $UserID -folderName $folderName -RemoveAccess $Request.query.removeaccess -TenantFilter $TenantFilter -LoggingName $LoggingName
2527
} else {
26-
$result = Set-CIPPCalendarPermission -UserID $UserID -folderName $folderName -TenantFilter $Tenantfilter -UserToGetPermissions $UserToGetPermissions -Permissions $Permissions
27-
$Result = "Successfully set permissions on folder $($CalParam.Identity). The user $UserToGetPermissions now has $Permissions permissions on this folder."
28+
$Result = Set-CIPPCalendarPermission -UserID $UserID -folderName $folderName -TenantFilter $Tenantfilter -UserToGetPermissions $UserToGetPermissions -LoggingName $LoggingName -Permissions $Permissions
2829
}
2930
} catch {
3031
$ErrorMessage = Get-NormalizedError -Message $_.Exception

Modules/CIPPCore/Public/Entrypoints/Invoke-ListMailboxes.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Function Invoke-ListMailboxes {
2020
# Interact with query parameters or the body of the request.
2121
$TenantFilter = $Request.Query.TenantFilter
2222
try {
23-
$Select = 'id,ExchangeGuid,ArchiveGuid,UserPrincipalName,DisplayName,PrimarySMTPAddress,RecipientType,RecipientTypeDetails,EmailAddresses,WhenSoftDeleted,IsInactiveMailbox,ForwardingSmtpAddress,DeliverToMailboxAndForward,ForwardingAddress'
23+
$Select = 'id,ExchangeGuid,ExternalDirectoryObjectId,ArchiveGuid,UserPrincipalName,DisplayName,PrimarySMTPAddress,RecipientType,RecipientTypeDetails,EmailAddresses,WhenSoftDeleted,IsInactiveMailbox,ForwardingSmtpAddress,DeliverToMailboxAndForward,ForwardingAddress'
2424
$ExoRequest = @{
2525
tenantid = $TenantFilter
2626
cmdlet = 'Get-Mailbox'
@@ -59,7 +59,7 @@ Function Invoke-ListMailboxes {
5959
}
6060

6161
Write-Host ($ExoRequest | ConvertTo-Json)
62-
$GraphRequest = (New-ExoRequest @ExoRequest) | Select-Object id, ExchangeGuid, ArchiveGuid, WhenSoftDeleted, @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } },
62+
$GraphRequest = (New-ExoRequest @ExoRequest) | Select-Object id, ExchangeGuid, ExternalDirectoryObjectId, ArchiveGuid, WhenSoftDeleted, @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } },
6363

6464
@{ Name = 'displayName'; Expression = { $_.'DisplayName' } },
6565
@{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } },

Modules/CIPPCore/Public/Set-CIPPCalendarPermission.ps1

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,38 @@ function Set-CIPPCalendarPermission {
66
$UserID,
77
$folderName,
88
$UserToGetPermissions,
9+
$LoggingName,
910
$Permissions
1011
)
1112

1213
try {
14+
# If a pretty logging name is not provided, use the ID instead
15+
if ([string]::IsNullOrWhiteSpace($LoggingName) -and $RemoveAccess) {
16+
$LoggingName = $RemoveAccess
17+
} elseif ([string]::IsNullOrWhiteSpace($LoggingName) -and $UserToGetPermissions) {
18+
$LoggingName = $UserToGetPermissions
19+
}
20+
1321
$CalParam = [PSCustomObject]@{
1422
Identity = "$($UserID):\$folderName"
1523
AccessRights = @($Permissions)
1624
User = $UserToGetPermissions
1725
}
1826
if ($RemoveAccess) {
19-
if ($PSCmdlet.ShouldProcess("$UserID\$folderName", "Remove permissions for $RemoveAccess")) {
27+
if ($PSCmdlet.ShouldProcess("$UserID\$folderName", "Remove permissions for $LoggingName")) {
2028
$null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Remove-MailboxFolderPermission' -cmdParams @{Identity = "$($UserID):\$folderName"; User = $RemoveAccess }
21-
$Result = "Successfully removed access for $RemoveAccess from calendar $($CalParam.Identity)"
22-
Write-LogMessage -API 'CalendarPermissions' -tenant $TenantFilter -message "Successfully removed access for $RemoveAccess from calendar $($UserID)" -sev Debug
29+
$Result = "Successfully removed access for $LoggingName from calendar $($CalParam.Identity)"
30+
Write-LogMessage -API 'CalendarPermissions' -tenant $TenantFilter -message "Successfully removed access for $LoggingName from calendar $($UserID)" -sev Info
2331
}
2432
} else {
25-
if ($PSCmdlet.ShouldProcess("$UserID\$folderName", "Set permissions for $UserToGetPermissions to $Permissions")) {
33+
if ($PSCmdlet.ShouldProcess("$UserID\$folderName", "Set permissions for $LoggingName to $Permissions")) {
2634
try {
2735
$null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Set-MailboxFolderPermission' -cmdParams $CalParam -Anchor $UserID
2836
} catch {
2937
$null = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Add-MailboxFolderPermission' -cmdParams $CalParam -Anchor $UserID
3038
}
31-
Write-LogMessage -API 'CalendarPermissions' -tenant $TenantFilter -message "Calendar permissions added for $UserToGetPermissions on $UserID." -sev Debug
32-
$Result = "Successfully set permissions on folder $($CalParam.Identity). The user $UserToGetPermissions now has $Permissions permissions on this folder."
39+
Write-LogMessage -API 'CalendarPermissions' -tenant $TenantFilter -message "Calendar permissions added for $LoggingName on $UserID." -sev Info
40+
$Result = "Successfully set permissions on folder $($CalParam.Identity). The user $LoggingName now has $Permissions permissions on this folder."
3341
}
3442
}
3543
} catch {

0 commit comments

Comments
 (0)