Skip to content

Commit

Permalink
Add functions to manage self password reset
Browse files Browse the repository at this point in the history
  • Loading branch information
UpperM committed Apr 8, 2020
1 parent dd5743e commit ec6fbc9
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 2 deletions.
13 changes: 11 additions & 2 deletions Documentation/Permissions.md
Expand Up @@ -4,7 +4,9 @@
- [Add-GuacSystemPermission](#add-guacsystempermission)
- [Remove-GuacConnectionGroupMember](#remove-guacconnectiongroupmember)
- [Remove-GuacSystemPermission](#remove-guacsystempermission)

- [Add-GuacUserPermission](#add-guacuserpermission)
- [Remove-GuacUserPermission](#remove-guacuserpermission)

## Add-GuacConnectionGroupMember
```Powershell
Add-GuacConnectionGroupMember -DataSource mysql -Username "john.doe" -Permission "READ" -ConnectionGroupId 1
Expand All @@ -21,4 +23,11 @@ Remove-GuacConnectionGroupMember -DataSource mysql -Username "john.doe" -Permiss
```Powershell
Remove-GuacSystemPermission -DataSource mysql -Username "john.doe" -Permission "ADMINISTER"
```

## Allow user to change own password
```Powershell
Add-GuacUserPermission -DataSource mysql -Username "john.doe" -Permission "UPDATE"
```
## Disallow user to change own password
```Powershell
Remove-GuacUserPermission -DataSource mysql -Username "john.doe" -Permission "UPDATE"
```
62 changes: 62 additions & 0 deletions PSGuacamole/Public/Permissions/Add-GuacUserPermission.ps1
@@ -0,0 +1,62 @@
Function Add-GuacUserPermission()
{
param(
[ValidateNotNullOrEmpty()]
[Parameter(
Position = 0,
Mandatory = $true
)]
[System.String]
$DataSource,

[ValidateNotNullOrEmpty()]
[Parameter(
Position = 1,
Mandatory = $true
)]
[System.String]
$Username,

[ValidateSet("UPDATE",ignorecase=$true)]
[Parameter(
Position = 2,
Mandatory = $true
)]
[System.String]
$Permission
)

begin
{
$Body = @{
"op"= "add"
"path"= "/userPermissions/$($Username)"
"value"= "$($Permission)"
} | ConvertTo-Json

$Body = "[$($Body)]"
$Uri = "$Server/api/session/data/$($DataSource)/users/$Username/permissions?token=$($Token)"
}
process
{
try
{
Write-Output $Uri
Write-Output $Body
$RestCall = Invoke-RestMethod -Method PATCH -Uri $Uri -ContentType 'application/json' -Body $Body
}
catch
{
Write-Warning $_.Exception.Message
return $False
}
}
end
{
return $RestCall
}
}

<#
Add-GuacUserPermission -DataSource mysql -Username "john.doe" -Permission "UPDATE"
#>
60 changes: 60 additions & 0 deletions PSGuacamole/Public/Permissions/Remove-GuacUserPermission.ps1
@@ -0,0 +1,60 @@
Function Remove-GuacUserPermission()
{
param(
[ValidateNotNullOrEmpty()]
[Parameter(
Position = 0,
Mandatory = $true
)]
[System.String]
$DataSource,

[ValidateNotNullOrEmpty()]
[Parameter(
Position = 1,
Mandatory = $true
)]
[System.String]
$Username,

[ValidateSet("UPDATE",ignorecase=$true)]
[Parameter(
Position = 2,
Mandatory = $true
)]
[System.String]
$Permission
)

begin
{
$Body = @{
"op"= "remove"
"path"= "/userPermissions/$($Username)"
"value"= "$($Permission)"
} | ConvertTo-Json

$Body = "[$($Body)]"
$Uri = "$Server/api/session/data/$($DataSource)/users/$Username/permissions?token=$($Token)"
}
process
{
try
{
$RestCall = Invoke-RestMethod -Method PATCH -Uri $Uri -ContentType 'application/json' -Body $Body
}
catch
{
Write-Warning $_.Exception.Message
return $False
}
}
end
{
return $RestCall
}
}

<#
Remove-GuacUserPermission -DataSource mysql -Username "john.doe" -Permission "UPDATE"
#>

0 comments on commit ec6fbc9

Please sign in to comment.