Skip to content

Commit 9fea298

Browse files
updated Get-TeamViewerRole function with permissions
1 parent c756e1d commit 9fea298

File tree

3 files changed

+61
-15
lines changed

3 files changed

+61
-15
lines changed

Cmdlets/Public/Get-TeamViewerRole.ps1

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,35 @@ function Get-TeamViewerRole {
33
param(
44
[Parameter(Mandatory = $true)]
55
[securestring]
6-
$ApiToken
6+
$ApiToken,
7+
8+
[switch]
9+
[Alias('ListPermissions')]
10+
$Permissions
711
)
812

9-
Begin{
10-
$parameters = @{ }
11-
$resourceUri = "$(Get-TeamViewerApiUri)/userroles"
13+
Begin {
14+
$parameters = @{ }
15+
$resourceUri = "$(Get-TeamViewerApiUri)/userroles"
16+
if ($Permissions) {
17+
$resourceUri += '/permissions'
18+
}
1219
}
1320

14-
Process{
15-
$response = Invoke-TeamViewerRestMethod `
16-
-ApiToken $ApiToken `
17-
-Uri $resourceUri `
18-
-Method Get `
19-
-Body $parameters `
20-
-WriteErrorTo $PSCmdlet `
21-
-ErrorAction Stop
22-
Write-Output ($response.Roles | ConvertTo-TeamViewerRole )
23-
}
21+
Process {
22+
$response = Invoke-TeamViewerRestMethod `
23+
-ApiToken $ApiToken `
24+
-Uri $resourceUri `
25+
-Method Get `
26+
-Body $parameters `
27+
-WriteErrorTo $PSCmdlet `
28+
-ErrorAction Stop
29+
if ($Permissions) {
30+
return [PSCustomObject] $response
31+
}
32+
else {
33+
Write-Output ($response.Roles | ConvertTo-TeamViewerRole )
34+
}
35+
}
2436
}
37+

Docs/Help/Get-TeamViewerRole.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Lists all roles and their permissions in a TeamViewer company.
1414
## SYNTAX
1515

1616
```powershell
17-
Get-TeamViewerRole [-ApiToken] <SecureString> [<CommonParameters>]
17+
Get-TeamViewerRole [-ApiToken] <SecureString> [-Permissions] [<CommonParameters>]
1818
```
1919

2020
## DESCRIPTION
@@ -31,6 +31,15 @@ PS /> Get-TeamViewerRole
3131

3232
Lists all roles and their permissions.
3333

34+
### Example 2
35+
36+
```powershell
37+
PS /> Get-TeamViewerRole -ApiToken $token -Permissions
38+
```
39+
40+
Lists all the possible permissions.
41+
42+
3443
## PARAMETERS
3544

3645
### -ApiToken
@@ -48,6 +57,21 @@ Default value: None
4857
Accept pipeline input: False
4958
Accept wildcard characters: False
5059
```
60+
### -Permissions
61+
62+
Return the list of currently supported permissions.
63+
64+
```yaml
65+
Type: SwitchParameter
66+
Parameter Sets: (All)
67+
Aliases: ListPermissions
68+
69+
Required: False
70+
Position: 1
71+
Default value: None
72+
Accept pipeline input: False
73+
Accept wildcard characters: False
74+
```
5175
5276
### CommonParameters
5377
@@ -66,3 +90,4 @@ An array of `TeamViewerPS.Role` objects.
6690
## NOTES
6791

6892
## RELATED LINKS
93+

Tests/Public/Get-TeamViewerRole.Tests.ps1

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,14 @@ Describe 'Get-TeamViewerRole' {
6161
$Uri -eq '//unit.test/userroles' -And `
6262
$Method -eq 'Get' }
6363
}
64+
It 'Should call the correct API endpoint to list permissions' {
65+
Get-TeamViewerRole -ApiToken $testApiToken -Permissions
66+
67+
Assert-MockCalled Invoke-TeamViewerRestMethod -Times 1 -Scope It -ParameterFilter {
68+
$ApiToken -eq $testApiToken -And `
69+
$Uri -eq '//unit.test/userroles/permissions' -And `
70+
$Method -eq 'Get' }
71+
}
6472

6573
It 'Should return Role objects' {
6674
$result = Get-TeamViewerRole -ApiToken $testApiToken

0 commit comments

Comments
 (0)