Skip to content

Commit 1fbd244

Browse files
committed
fix(testmdepermissions): 🐛 Added fix for handling null roles and a test case
1 parent e9c72ae commit 1fbd244

File tree

3 files changed

+27
-36
lines changed

3 files changed

+27
-36
lines changed

README.md

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -185,26 +185,3 @@ See [Contributing Guide](https://github.com/Visorian/PSMDE/blob/main/CONTRIBUTIN
185185
Made with :heart:
186186

187187
Published under [MIT License](./LICENCE).
188-
189-
190-
191-
192-
193-
194-
195-
196-
197-
198-
199-
200-
201-
202-
203-
204-
205-
206-
207-
208-
209-
210-

src/private/Test-MdePermissions.ps1

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,25 @@ function Test-MdePermissions {
1515
$script:initialize = $false
1616
}
1717
$roles = (Get-MdeAuthorizationInfo).roles
18-
$requiredRoles = (Get-Help $functionName -Full).role | Invoke-Expression
19-
$containsRole = $false
20-
foreach ($role in $requiredRoles) {
21-
$evaluation = $roles.contains($role.permission)
22-
Write-Verbose "Checking for '[$($role.permissionType)] $($role.permission)': $evaluation"
23-
$containsRole = $containsRole -or $evaluation
24-
}
25-
if ($detailed) {
26-
return @{
27-
validTokenPermission = $containsRole
28-
requiredRoles = $requiredRoles.permission
29-
currentRoles = $roles
18+
if ($roles) {
19+
$requiredRoles = (Get-Help $functionName -Full).role | Invoke-Expression
20+
$containsRole = $false
21+
foreach ($role in $requiredRoles) {
22+
$evaluation = $roles.contains($role.permission)
23+
Write-Verbose "Checking for '[$($role.permissionType)] $($role.permission)': $evaluation"
24+
$containsRole = $containsRole -or $evaluation
25+
}
26+
if ($detailed) {
27+
return @{
28+
validTokenPermission = $containsRole
29+
requiredRoles = $requiredRoles.permission
30+
currentRoles = $roles
31+
}
3032
}
33+
return $containsRole
3134
}
32-
return $containsRole
35+
Write-Warning "No roles found, are you logged in?"
36+
return $false
3337
}
3438

3539
# SIG # Begin signature block

tests/private/Test-MdePermissions.Tests.ps1

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,14 @@ Describe 'Test-MdePermissions' {
6262
}
6363
}
6464
}
65+
66+
It 'Should handle and return $false when roles are null' {
67+
InModuleScope PSMDE {
68+
Mock Get-MdeAuthorizationHeader { }
69+
Mock Get-MdeAuthorizationInfo { return $null }
70+
$warning = $( & Test-MdePermissions -functionName 'Get-MdeMachine' ) 3>&1
71+
$warning.message | Should -Be 'No roles found, are you logged in?'
72+
Should -Invoke Get-MdeAuthorizationInfo
73+
}
74+
}
6575
}

0 commit comments

Comments
 (0)