From d4153470e743d9b224dd131271590d45686c15e2 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Mon, 22 Dec 2014 22:37:44 -0800 Subject: [PATCH] GUAC-932: Display current connection/group permissions in user edit interface. --- .../controllers/manageUserController.js | 51 +++++++++++++++++++ .../templates/connectionGroupPermission.html | 2 +- .../templates/connectionPermission.html | 2 +- .../webapp/app/manage/templates/manage.html | 1 - 4 files changed, 53 insertions(+), 3 deletions(-) diff --git a/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js b/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js index 672dec7bf..b6ce22b43 100644 --- a/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js +++ b/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js @@ -72,6 +72,57 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto $scope.rootGroup = rootGroup; }); + // Expose permission query and modification functions to group list template + $scope.groupListContext = { + + /** + * Determines whether read permission for the connection having the + * given identifier is granted for the user being edited. + * + * @param {String} identifier + * The identifier of the connection to check. + * + * @returns {Boolean} + * true if the user has read permission for the given connection, + * false if the user lacks read permission, or the permissions have + * not yet been loaded. + */ + canReadConnection : function canReadConnection(identifier) { + + // Assume no permission if permissions not available yet + if (!$scope.permissions) + return false; + + // Return whether READ permission is present + return PermissionSet.hasConnectionPermission($scope.permissions, PermissionSet.ObjectPermissionType.READ, identifier); + + }, + + /** + * Determines whether read permission for the connection group having + * the given identifier is granted for the user being edited. + * + * @param {String} identifier + * The identifier of the connection group to check. + * + * @returns {Boolean} + * true if the user has read permission for the given connection + * group, false if the user lacks read permission, or the + * permissions have not yet been loaded. + */ + canReadConnectionGroup : function canReadConnectionGroup(identifier) { + + // Assume no permission if permissions not available yet + if (!$scope.permissions) + return false; + + // Return whether READ permission is present + return PermissionSet.hasConnectionGroupPermission($scope.permissions, PermissionSet.ObjectPermissionType.READ, identifier); + + } + + }; + /** * Cancels all pending edits, returning to the management page. */ diff --git a/guacamole/src/main/webapp/app/manage/templates/connectionGroupPermission.html b/guacamole/src/main/webapp/app/manage/templates/connectionGroupPermission.html index 6c03b152a..0074b513d 100644 --- a/guacamole/src/main/webapp/app/manage/templates/connectionGroupPermission.html +++ b/guacamole/src/main/webapp/app/manage/templates/connectionGroupPermission.html @@ -21,6 +21,6 @@ THE SOFTWARE. --> - + {{item.name}} diff --git a/guacamole/src/main/webapp/app/manage/templates/connectionPermission.html b/guacamole/src/main/webapp/app/manage/templates/connectionPermission.html index 1920ffe3f..c33f6018e 100644 --- a/guacamole/src/main/webapp/app/manage/templates/connectionPermission.html +++ b/guacamole/src/main/webapp/app/manage/templates/connectionPermission.html @@ -27,7 +27,7 @@ - + {{item.name}} diff --git a/guacamole/src/main/webapp/app/manage/templates/manage.html b/guacamole/src/main/webapp/app/manage/templates/manage.html index 55b6abed5..3a45f3f24 100644 --- a/guacamole/src/main/webapp/app/manage/templates/manage.html +++ b/guacamole/src/main/webapp/app/manage/templates/manage.html @@ -64,7 +64,6 @@ THE SOFTWARE.