Tests/Security/AccessToRs.Tests.ps1
function Get-TestUser() { if (-not $env:RsUser) { throw 'Environment variable RsUser is not defined!' } return $env:RsUser } function Get-RsSystemPolicies() { $rsProxy = New-RsWebServiceProxy return $rsProxy.GetSystemPolicies() } Describe "Grant and Revoke Access To Rs" { $user = Get-TestUser Context "Granting permission to test user" { It "Should assign System User access to test user" { $role = 'System User' Grant-AccessToRs -UserOrGroupName $user -RoleName $role -Confirm:$false -Verbose $policies = Get-RsSystemPolicies $userPolicy = $policies | Where-Object { $_.GroupUserName -eq $user } $userPolicy | Should Not BeNullOrEmpty $userPolicy.Roles.Length | Should Be 1 $role = $userPolicy.Roles | Where-Object { $_.Name -eq $role } $role | Should Not BeNullOrEmpty } It "Should assign System Administrator access to test user" { $role = 'System Administrator' Grant-AccessToRs -UserOrGroupName $user -RoleName $role -Confirm:$false -Verbose $policies = Get-RsSystemPolicies $userPolicy = $policies | Where-Object { $_.GroupUserName -eq $user } $userPolicy | Should Not BeNullOrEmpty $userPolicy.Roles.Length | Should Be 1 $role = $userPolicy.Roles | Where-Object { $_.Name -eq $role } $role | Should Not BeNullOrEmpty } AfterEach { Revoke-AccessToRs -UserOrGroupName $user -Confirm:$false -Verbose } } Context "Revoking access from test user" { $role = 'System Administrator' Grant-AccessToRs -UserOrGroupName $user -RoleName $role -Confirm:$false -Verbose It "Should remove all access for test user" { Revoke-AccessToRs -UserOrGroupName $user -Confirm:$false -Verbose $policies = Get-RsSystemPolicies $userPolicy = $policies | Where-Object { $_.GroupUserName -eq $user } $userPolicy | Should BeNullOrEmpty } } } |