Skip to content

Commit 1cd706e

Browse files
authored
Merge pull request #124 from KelvinTegelaar/dev
[pull] dev from KelvinTegelaar:dev
2 parents 1111728 + 6c8285d commit 1cd706e

File tree

4 files changed

+38
-10
lines changed

4 files changed

+38
-10
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ Function Invoke-ListCalendarPermissions {
2121
$GetCalParam = @{Identity = $UserID; FolderScope = 'Calendar' }
2222
$CalendarFolder = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderStatistics' -anchor $UserID -cmdParams $GetCalParam | Select-Object -First 1 -ExcludeProperty *data.type*
2323
$CalParam = @{Identity = "$($UserID):\$($CalendarFolder.name)" }
24-
$GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderPermission' -anchor $UserID -cmdParams $CalParam -UseSystemMailbox $true | Select-Object Identity, User, AccessRights, FolderName
24+
$Mailbox = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-Mailbox' -cmdParams @{Identity = $UserID }
25+
$GraphRequest = New-ExoRequest -tenantid $TenantFilter -cmdlet 'Get-MailboxFolderPermission' -anchor $UserID -cmdParams $CalParam -UseSystemMailbox $true | Select-Object Identity, User, AccessRights, FolderName, @{ Name = 'MailboxInfo'; Expression = { $Mailbox } }
26+
2527
Write-LogMessage -API $APIName -tenant $TenantFilter -message "Calendar permissions listed for $($TenantFilter)" -sev Debug
2628
$StatusCode = [HttpStatusCode]::OK
2729
} catch {

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

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ Function Invoke-ListUserMailboxDetails {
6464
}
6565
)
6666
Write-Host $UserID
67-
#$username = (New-GraphGetRequest -tenantid $TenantFilter -uri "https://graph.microsoft.com/beta/users/$UserID").userPrincipalName
67+
$usernames = New-GraphGetRequest -tenantid $TenantFilter -uri 'https://graph.microsoft.com/beta/users?$select=id,userPrincipalName&$top=999'
6868
$Results = New-ExoBulkRequest -TenantId $TenantFilter -CmdletArray $Requests -returnWithCommand $true -Anchor $username
69-
69+
Write-Host "First line of usernames is $($usernames[0] | ConvertTo-Json)"
7070
# Assign variables from $Results
7171
$MailboxDetailedRequest = $Results.'Get-Mailbox'
7272
$PermsRequest = $Results.'Get-MailboxPermission'
@@ -113,18 +113,34 @@ Function Invoke-ListUserMailboxDetails {
113113

114114
# Parse permissions
115115

116-
$ParsedPerms = foreach ($PermSet in @($PermsRequest, $PermsRequest2)) {
116+
#Implemented as an arraylist that uses .add().
117+
$ParsedPerms = [System.Collections.ArrayList]::new()
118+
foreach ($PermSet in @($PermsRequest, $PermsRequest2)) {
117119
foreach ($Perm in $PermSet) {
118120
# Check if Trustee or User is not NT AUTHORITY\SELF
119121
$user = $Perm.Trustee ? $Perm.Trustee : $Perm.User
120-
if ($user -ne 'NT AUTHORITY\SELF') {
121-
[PSCustomObject]@{
122-
User = $user
123-
AccessRights = ($Perm.AccessRights) -join ', '
124-
}
122+
if ($user -and $user -ne 'NT AUTHORITY\SELF') {
123+
$null = $ParsedPerms.Add([PSCustomObject]@{
124+
User = $user
125+
AccessRights = ($Perm.AccessRights) -join ', '
126+
})
125127
}
126128
}
127129
}
130+
if ($MailboxDetailedRequest.GrantSendOnBehalfTo) {
131+
$MailboxDetailedRequest.GrantSendOnBehalfTo | ForEach-Object {
132+
$id = $_
133+
$username = $usernames | Where-Object { $_.id -eq $id }
134+
135+
$null = $ParsedPerms.Add([PSCustomObject]@{
136+
User = $username.UserPrincipalName ? $username.UserPrincipalName : $_
137+
AccessRights = 'SendOnBehalf'
138+
})
139+
}
140+
}
141+
if ($ParsedPerms.Count -eq 0) {
142+
$ParsedPerms = @()
143+
}
128144

129145
# Get forwarding address
130146
$ForwardingAddress = if ($MailboxDetailedRequest.ForwardingAddress) {

Modules/CIPPCore/Public/New-CIPPDeviceAction.ps1

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ function New-CIPPDeviceAction {
99
$APINAME
1010
)
1111
try {
12+
if ($action -eq 'delete') {
13+
$null = New-Graphpostrequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$DeviceFilter" -type DELETE -tenantid $TenantFilter
14+
Write-LogMessage -headers $Headers -API $APINAME -tenant $TenantFilter -message "Queued $Action on $DeviceFilter" -Sev 'Info'
15+
return "Queued $Action on $DeviceFilter"
16+
}
1217
$null = New-Graphpostrequest -uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices('$DeviceFilter')/$($Action)" -type POST -tenantid $TenantFilter -body $ActionBody
1318
Write-LogMessage -headers $Headers -API $APINAME -tenant $TenantFilter -message "Queued $Action on $DeviceFilter" -Sev 'Info'
1419
return "Queued $Action on $DeviceFilter"

Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardEnableLitigationHold.ps1

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,19 @@ function Invoke-CIPPStandardEnableLitigationHold {
3939
} else {
4040
try {
4141
$Request = $MailboxesNoLitHold | ForEach-Object {
42-
@{
42+
$params = @{
4343
CmdletInput = @{
4444
CmdletName = 'Set-Mailbox'
4545
Parameters = @{ Identity = $_.UserPrincipalName; LitigationHoldEnabled = $true }
4646
}
4747
}
48+
if ($Settings.days -ne $null) {
49+
$params.CmdletInput.Parameters['LitigationHoldDuration'] = $Settings.days
50+
}
51+
$params
4852
}
4953

54+
5055
$BatchResults = New-ExoBulkRequest -tenantid $tenant -cmdletArray @($Request)
5156
$BatchResults | ForEach-Object {
5257
if ($_.error) {

0 commit comments

Comments
 (0)