mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-08 22:21:22 +00:00
Add support for new permissions.
This commit is contained in:
@@ -226,6 +226,11 @@ GuacamoleService.PermissionSet = function() {
|
|||||||
*/
|
*/
|
||||||
this.create_connection = false;
|
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.
|
* Whether permission to administer the system in general is granted.
|
||||||
*/
|
*/
|
||||||
@@ -271,6 +276,26 @@ GuacamoleService.PermissionSet = function() {
|
|||||||
*/
|
*/
|
||||||
this.administer_connection = {};
|
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;
|
var name;
|
||||||
|
|
||||||
// System permissions
|
// System permissions
|
||||||
if (permissions_added.create_user) data += "&%2Bsys=create-user";
|
if (permissions_added.create_user) data += "&%2Bsys=create-user";
|
||||||
if (permissions_added.create_connection) data += "&%2Bsys=create-connection";
|
if (permissions_added.create_connection) data += "&%2Bsys=create-connection";
|
||||||
if (permissions_added.administer) data += "&%2Bsys=admin";
|
if (permissions_added.create_connection_group) data += "&%2Bsys=create-connection-group";
|
||||||
|
if (permissions_added.administer) data += "&%2Bsys=admin";
|
||||||
|
|
||||||
// User permissions
|
// User permissions
|
||||||
for (name in permissions_added.read_user)
|
for (name in permissions_added.read_user)
|
||||||
@@ -753,10 +779,21 @@ GuacamoleService.Users = {
|
|||||||
for (name in permissions_added.remove_connection)
|
for (name in permissions_added.remove_connection)
|
||||||
data += "&%2Bconnection=delete:" + encodeURIComponent(name);
|
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
|
// Creation permissions
|
||||||
if (permissions_removed.create_user) data += "&-sys=create-user";
|
if (permissions_removed.create_user) data += "&-sys=create-user";
|
||||||
if (permissions_removed.create_connection) data += "&-sys=create-connection";
|
if (permissions_removed.create_connection) data += "&-sys=create-connection";
|
||||||
if (permissions_removed.administer) data += "&-sys=admin";
|
if (permissions_removed.create_connection_group) data += "&-sys=create-connection-group";
|
||||||
|
if (permissions_removed.administer) data += "&-sys=admin";
|
||||||
|
|
||||||
// User permissions
|
// User permissions
|
||||||
for (name in permissions_removed.read_user)
|
for (name in permissions_removed.read_user)
|
||||||
@@ -778,6 +815,16 @@ GuacamoleService.Users = {
|
|||||||
for (name in permissions_removed.remove_connection)
|
for (name in permissions_removed.remove_connection)
|
||||||
data += "&-connection=delete:" + encodeURIComponent(name);
|
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
|
// Update user
|
||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest();
|
||||||
xhr.open("POST", users_url, false);
|
xhr.open("POST", users_url, false);
|
||||||
@@ -897,6 +944,11 @@ GuacamoleService.Permissions = {
|
|||||||
permissions.create_connection = true;
|
permissions.create_connection = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// Create connection group permission
|
||||||
|
case "create-connection-group":
|
||||||
|
permissions.create_connection_group = true;
|
||||||
|
break;
|
||||||
|
|
||||||
// Create user permission
|
// Create user permission
|
||||||
case "create-user":
|
case "create-user":
|
||||||
permissions.create_user = true;
|
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
|
// Read user permissions
|
||||||
var userElements = xhr.responseXML.getElementsByTagName("user");
|
var userElements = xhr.responseXML.getElementsByTagName("user");
|
||||||
for (i=0; i<userElements.length; i++) {
|
for (i=0; i<userElements.length; i++) {
|
||||||
|
Reference in New Issue
Block a user