Skip to content

Commit e3999fe

Browse files
authored
Merge pull request #541 from KelvinTegelaar/dev
[pull] dev from KelvinTegelaar:dev
2 parents 3b3ecba + 1c4c20d commit e3999fe

File tree

4 files changed

+23
-39
lines changed

4 files changed

+23
-39
lines changed

.github/workflows/dev_clouduptest.yml

Lines changed: 0 additions & 32 deletions
This file was deleted.

Modules/CIPPCore/Public/Authentication/Test-CIPPAccessUserRole.ps1

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ function Test-CIPPAccessUserRole {
2121
)
2222
$Roles = @()
2323
$Table = Get-CippTable -TableName cacheAccessUserRoles
24-
$Filter = "PartitionKey eq 'AccessRole' and RowKey eq '$($User.userDetails)' and Timestamp ge datetime'$((Get-Date).AddMinutes(-15).ToString('yyyy-MM-ddTHH:mm:ss'))'"
24+
$Filter = "PartitionKey eq 'AccessUser' and RowKey eq '$($User.userDetails)' and Timestamp ge datetime'$((Get-Date).AddMinutes(-15).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))'"
2525
$UserRole = Get-CIPPAzDataTableEntity @Table -Filter $Filter
2626
if ($UserRole) {
2727
Write-Information "Found cached user role for $($User.userDetails)"
@@ -31,27 +31,34 @@ function Test-CIPPAccessUserRole {
3131
$uri = "https://graph.microsoft.com/beta/users/$($User.userDetails)/transitiveMemberOf"
3232
$Memberships = New-GraphGetRequest -uri $uri -NoAuthCheck $true | Where-Object { $_.'@odata.type' -eq '#microsoft.graph.group' }
3333
if ($Memberships) {
34-
Write-Information "Found user roles for $($User.userDetails)"
34+
Write-Information "Found group memberships for $($User.userDetails)"
3535
} else {
36-
Write-Information "No user roles found for $($User.userDetails)"
36+
Write-Information "No group memberships found for $($User.userDetails)"
3737
}
3838
} catch {
3939
Write-Information "Could not get user roles for $($User.userDetails). $($_.Exception.Message)"
4040
return $User
4141
}
4242

4343
$AccessGroupsTable = Get-CippTable -TableName AccessRoleGroups
44-
$AccessGroups = Get-CIPPAzDataTableEntity @AccessGroupsTable
44+
$AccessGroups = Get-CIPPAzDataTableEntity @AccessGroupsTable -Filter "PartitionKey eq 'AccessRoleGroups'"
45+
$CustomRolesTable = Get-CippTable -TableName CustomRoles
46+
$CustomRoles = Get-CIPPAzDataTableEntity @CustomRolesTable -Filter "PartitionKey eq 'CustomRoles'"
47+
$BaseRoles = @('superadmin', 'admin', 'editor', 'readonly')
4548

4649
$Roles = foreach ($AccessGroup in $AccessGroups) {
47-
if ($Memberships.id -contains $AccessGroup.GroupId) {
50+
if ($Memberships.id -contains $AccessGroup.GroupId -and ($CustomRoles.RowKey -contains $AccessGroup.RowKey -or $BaseRoles -contains $AccessGroup.RowKey)) {
4851
$AccessGroup.RowKey
4952
}
5053
}
5154

5255
$Roles = @($Roles) + @($User.userRoles)
5356

54-
if (($Roles | Measure-Object).Count -gt 0) {
57+
if ($Roles) {
58+
Write-Information "Roles determined for $($User.userDetails): $($Roles -join ', ')"
59+
}
60+
61+
if (($Roles | Measure-Object).Count -gt 2) {
5562
$UserRole = [PSCustomObject]@{
5663
PartitionKey = 'AccessUser'
5764
RowKey = [string]$User.userDetails

Modules/CIPPCore/Public/Entrypoints/HTTP Functions/CIPP/Settings/Invoke-ExecCustomRole.ps1

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ function Invoke-ExecCustomRole {
110110
Write-Information "Deleting custom role $($Request.Body.RoleName)"
111111
$Role = Get-CIPPAzDataTableEntity @Table -Filter "RowKey eq '$($Request.Body.RoleName)'" -Property RowKey, PartitionKey
112112
Remove-AzDataTableEntity -Force @Table -Entity $Role
113+
$AccessRoleGroup = Get-CIPPAzDataTableEntity @AccessRoleGroupTable -Filter "PartitionKey eq 'AccessRoleGroups' and RowKey eq '$($Request.Body.RoleName)'"
114+
if ($AccessRoleGroup) {
115+
Remove-AzDataTableEntity -Force @AccessRoleGroupTable -Entity $AccessRoleGroup
116+
}
113117
$Body = @{Results = 'Custom role deleted' }
114118
Write-LogMessage -headers $Request.Headers -API 'ExecCustomRole' -message "Deleted custom role $($Request.Body.RoleName)" -Sev 'Info'
115119
}

Modules/CippExtensions/Public/GitHub/Invoke-GitHubApiRequest.ps1

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,12 @@ function Invoke-GitHubApiRequest {
1212
)
1313

1414
$Table = Get-CIPPTable -TableName Extensionsconfig
15-
$Configuration = ((Get-CIPPAzDataTableEntity @Table).config | ConvertFrom-Json).GitHub
15+
$ExtensionConfig = (Get-CIPPAzDataTableEntity @Table).config
16+
if (Test-Json -Json $ExtensionConfig) {
17+
$Configuration = ($ExtensionConfig | ConvertFrom-Json).GitHub
18+
} else {
19+
$Configuration = @{ Enabled = $false }
20+
}
1621

1722
if ($Configuration.Enabled) {
1823
$APIKey = Get-ExtensionAPIKey -Extension 'GitHub'

0 commit comments

Comments
 (0)