mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
Add support for new permissions.
This commit is contained in:
@@ -226,6 +226,11 @@ GuacamoleService.PermissionSet = function() {
|
||||
*/
|
||||
this.create_connection = false;
|
||||
|
||||
/**
|
||||
* Whether permission to create connection groups is granted.
|
||||
*/
|
||||
this.create_connection_group = false;
|
||||
|
||||
/**
|
||||
* Whether permission to administer the system in general is granted.
|
||||
*/
|
||||
@@ -271,6 +276,26 @@ GuacamoleService.PermissionSet = function() {
|
||||
*/
|
||||
this.administer_connection = {};
|
||||
|
||||
/**
|
||||
* Object with a property entry for each readable connection group.
|
||||
*/
|
||||
this.read_connection_group = {};
|
||||
|
||||
/**
|
||||
* Object with a property entry for each updatable connection group.
|
||||
*/
|
||||
this.update_connection_group = {};
|
||||
|
||||
/**
|
||||
* Object with a property entry for each removable connection group.
|
||||
*/
|
||||
this.remove_connection_group = {};
|
||||
|
||||
/**
|
||||
* Object with a property entry for each administerable connection group.
|
||||
*/
|
||||
this.administer_connection_group = {};
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -729,9 +754,10 @@ GuacamoleService.Users = {
|
||||
var name;
|
||||
|
||||
// System permissions
|
||||
if (permissions_added.create_user) data += "&%2Bsys=create-user";
|
||||
if (permissions_added.create_connection) data += "&%2Bsys=create-connection";
|
||||
if (permissions_added.administer) data += "&%2Bsys=admin";
|
||||
if (permissions_added.create_user) data += "&%2Bsys=create-user";
|
||||
if (permissions_added.create_connection) data += "&%2Bsys=create-connection";
|
||||
if (permissions_added.create_connection_group) data += "&%2Bsys=create-connection-group";
|
||||
if (permissions_added.administer) data += "&%2Bsys=admin";
|
||||
|
||||
// User permissions
|
||||
for (name in permissions_added.read_user)
|
||||
@@ -753,10 +779,21 @@ GuacamoleService.Users = {
|
||||
for (name in permissions_added.remove_connection)
|
||||
data += "&%2Bconnection=delete:" + encodeURIComponent(name);
|
||||
|
||||
// Connection group permissions
|
||||
for (name in permissions_added.read_connection_group)
|
||||
data += "&%2Bconnection-group=read:" + encodeURIComponent(name);
|
||||
for (name in permissions_added.administer_connection_group)
|
||||
data += "&%2Bconnection-group=admin:" + encodeURIComponent(name);
|
||||
for (name in permissions_added.update_connection_group)
|
||||
data += "&%2Bconnection-group=update:" + encodeURIComponent(name);
|
||||
for (name in permissions_added.remove_connection_group)
|
||||
data += "&%2Bconnection-group=delete:" + encodeURIComponent(name);
|
||||
|
||||
// Creation permissions
|
||||
if (permissions_removed.create_user) data += "&-sys=create-user";
|
||||
if (permissions_removed.create_connection) data += "&-sys=create-connection";
|
||||
if (permissions_removed.administer) data += "&-sys=admin";
|
||||
if (permissions_removed.create_user) data += "&-sys=create-user";
|
||||
if (permissions_removed.create_connection) data += "&-sys=create-connection";
|
||||
if (permissions_removed.create_connection_group) data += "&-sys=create-connection-group";
|
||||
if (permissions_removed.administer) data += "&-sys=admin";
|
||||
|
||||
// User permissions
|
||||
for (name in permissions_removed.read_user)
|
||||
@@ -778,6 +815,16 @@ GuacamoleService.Users = {
|
||||
for (name in permissions_removed.remove_connection)
|
||||
data += "&-connection=delete:" + encodeURIComponent(name);
|
||||
|
||||
// Connection group permissions
|
||||
for (name in permissions_removed.read_connection_group)
|
||||
data += "&-connection-group=read:" + encodeURIComponent(name);
|
||||
for (name in permissions_removed.administer_connection_group)
|
||||
data += "&-connection-group=admin:" + encodeURIComponent(name);
|
||||
for (name in permissions_removed.update_connection_group)
|
||||
data += "&-connection-group=update:" + encodeURIComponent(name);
|
||||
for (name in permissions_removed.remove_connection_group)
|
||||
data += "&-connection-group=delete:" + encodeURIComponent(name);
|
||||
|
||||
// Update user
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("POST", users_url, false);
|
||||
@@ -897,6 +944,11 @@ GuacamoleService.Permissions = {
|
||||
permissions.create_connection = true;
|
||||
break;
|
||||
|
||||
// Create connection group permission
|
||||
case "create-connection-group":
|
||||
permissions.create_connection_group = true;
|
||||
break;
|
||||
|
||||
// Create user permission
|
||||
case "create-user":
|
||||
permissions.create_user = true;
|
||||
@@ -945,6 +997,40 @@ GuacamoleService.Permissions = {
|
||||
|
||||
}
|
||||
|
||||
// Read connection group permissions
|
||||
var connectionGroupElements = xhr.responseXML.getElementsByTagName("connection-group");
|
||||
for (i=0; i<connectionGroupElements.length; i++) {
|
||||
|
||||
// Get name and type
|
||||
type = connectionGroupElements[i].getAttribute("type");
|
||||
name = connectionGroupElements[i].getAttribute("name");
|
||||
|
||||
switch (type) {
|
||||
|
||||
// Read permission
|
||||
case "read":
|
||||
permissions.read_connection_group[name] = true;
|
||||
break;
|
||||
|
||||
// Update permission
|
||||
case "update":
|
||||
permissions.update_connection_group[name] = true;
|
||||
break;
|
||||
|
||||
// Admin permission
|
||||
case "admin":
|
||||
permissions.administer_connection_group[name] = true;
|
||||
break;
|
||||
|
||||
// Delete permission
|
||||
case "delete":
|
||||
permissions.remove_connection_group[name] = true;
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Read user permissions
|
||||
var userElements = xhr.responseXML.getElementsByTagName("user");
|
||||
for (i=0; i<userElements.length; i++) {
|
||||
|
Reference in New Issue
Block a user