Refactor to support new SystemPermission organization (no more *DirectoryPermission classes).

This commit is contained in:
Michael Jumper
2013-02-27 16:20:09 -08:00
parent 65a31775b6
commit a84b9d2094
5 changed files with 99 additions and 195 deletions

View File

@@ -117,6 +117,11 @@ GuacamoleService.PermissionSet = function() {
*/
this.create_connection = false;
/**
* Whether permission to administer the system in general is granted.
*/
this.administer = false;
/**
* Object with a property entry for each readable user.
*/
@@ -416,9 +421,10 @@ GuacamoleService.Users = {
var name;
// Creation permissions
if (permissions_added.create_user) data += "&%2Buser=create";
if (permissions_added.create_connection) data += "&%2Bconnection=create";
// 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";
// User permissions
for (name in permissions_added.read_user)
@@ -441,8 +447,9 @@ GuacamoleService.Users = {
data += "&%2Bconnection=delete:" + encodeURIComponent(name);
// Creation permissions
if (permissions_removed.create_user) data += "&-user=create";
if (permissions_removed.create_connection) data += "&-connection=create";
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";
// User permissions
for (name in permissions_removed.read_user)
@@ -574,19 +581,29 @@ GuacamoleService.Permissions = {
var i, type, name;
var permissions = new GuacamoleService.PermissionSet();
// Read connections permissions
var connectionsElements = xhr.responseXML.getElementsByTagName("connections");
// Read system permissions
var connectionsElements = xhr.responseXML.getElementsByTagName("system");
for (i=0; i<connectionsElements.length; i++) {
// Get type
type = connectionsElements[i].getAttribute("type");
switch (type) {
// Create permission
case "create":
// Create connection permission
case "create-connection":
permissions.create_connection = true;
break;
// Create user permission
case "create-user":
permissions.create_user = true;
break;
// System admin permission
case "admin":
permissions.administer = true;
break;
}
}
@@ -625,23 +642,6 @@ GuacamoleService.Permissions = {
}
// Read users permissions
var usersElements = xhr.responseXML.getElementsByTagName("users");
for (i=0; i<usersElements.length; i++) {
// Get type
type = usersElements[i].getAttribute("type");
switch (type) {
// Create permission
case "create":
permissions.create_user = true;
break;
}
}
// Read user permissions
var userElements = xhr.responseXML.getElementsByTagName("user");
for (i=0; i<userElements.length; i++) {