diff --git a/guacamole/src/main/frontend/src/app/settings/directives/guacSettingsPreferences.js b/guacamole/src/main/frontend/src/app/settings/directives/guacSettingsPreferences.js index 005d2398b..4656631de 100644 --- a/guacamole/src/main/frontend/src/app/settings/directives/guacSettingsPreferences.js +++ b/guacamole/src/main/frontend/src/app/settings/directives/guacSettingsPreferences.js @@ -208,9 +208,16 @@ angular.module('settings').directive('guacSettingsPreferences', [function guacSe .then(function permissionsRetrieved(permissions) { // Add action for updaing password or user preferences if permission is granted - $scope.canUpdateSelf = PermissionSet.hasUserPermission(permissions, - PermissionSet.ObjectPermissionType.UPDATE, username); - + $scope.canUpdateSelf = ( + + // If permission is explicitly granted + PermissionSet.hasUserPermission(permissions, + PermissionSet.ObjectPermissionType.UPDATE, username) + + // Or if implicitly granted through being an administrator + || PermissionSet.hasSystemPermission(permissions, + PermissionSet.SystemPermissionType.ADMINISTER)); + }) ['catch'](requestService.createErrorCallback(function permissionsFailed(error) { $scope.canUpdateSelf = false;