mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-07 13:41:21 +00:00
Merge pull request #62 from glyptodon/fix-manage-button
GUAC-992: Fix display of manage button and UI.
This commit is contained in:
@@ -76,12 +76,31 @@ angular.module('home').controller('homeController', ['$scope', '$injector',
|
|||||||
permissionService.getPermissions(authenticationService.getCurrentUserID())
|
permissionService.getPermissions(authenticationService.getCurrentUserID())
|
||||||
.success(function permissionsRetrieved(permissions) {
|
.success(function permissionsRetrieved(permissions) {
|
||||||
|
|
||||||
// Determine whether the current user can access the management UI
|
// Ignore permission to update root group
|
||||||
|
PermissionSet.removeConnectionGroupPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE, ConnectionGroup.ROOT_IDENTIFIER);
|
||||||
|
|
||||||
|
// Determine whether the current user needs access to the management UI
|
||||||
$scope.canManageGuacamole =
|
$scope.canManageGuacamole =
|
||||||
|
|
||||||
|
// System permissions
|
||||||
PermissionSet.hasSystemPermission(permissions, PermissionSet.SystemPermissionType.ADMINISTER)
|
PermissionSet.hasSystemPermission(permissions, PermissionSet.SystemPermissionType.ADMINISTER)
|
||||||
|
|| PermissionSet.hasSystemPermission(permissions, PermissionSet.SystemPermissionType.CREATE_CONNECTION)
|
||||||
|
|| PermissionSet.hasSystemPermission(permissions, PermissionSet.SystemPermissionType.CREATE_CONNECTION_GROUP)
|
||||||
|
|
||||||
|
// Permission to update objects
|
||||||
|| PermissionSet.hasConnectionPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE)
|
|| PermissionSet.hasConnectionPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE)
|
||||||
|| PermissionSet.hasConnectionGroupPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE)
|
|| PermissionSet.hasConnectionGroupPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE)
|
||||||
|| PermissionSet.hasUserPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE);
|
|| PermissionSet.hasUserPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE)
|
||||||
|
|
||||||
|
// Permission to delete objects
|
||||||
|
|| PermissionSet.hasConnectionPermission(permissions, PermissionSet.ObjectPermissionType.DELETE)
|
||||||
|
|| PermissionSet.hasConnectionGroupPermission(permissions, PermissionSet.ObjectPermissionType.DELETE)
|
||||||
|
|| PermissionSet.hasUserPermission(permissions, PermissionSet.ObjectPermissionType.DELETE)
|
||||||
|
|
||||||
|
// Permission to administer objects
|
||||||
|
|| PermissionSet.hasConnectionPermission(permissions, PermissionSet.ObjectPermissionType.ADMINISTER)
|
||||||
|
|| PermissionSet.hasConnectionGroupPermission(permissions, PermissionSet.ObjectPermissionType.ADMINISTER)
|
||||||
|
|| PermissionSet.hasUserPermission(permissions, PermissionSet.ObjectPermissionType.ADMINISTER);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -32,6 +32,7 @@ angular.module('manage').controller('manageController', ['$scope', '$injector',
|
|||||||
var User = $injector.get('User');
|
var User = $injector.get('User');
|
||||||
|
|
||||||
// Required services
|
// Required services
|
||||||
|
var $location = $injector.get('$location');
|
||||||
var authenticationService = $injector.get('authenticationService');
|
var authenticationService = $injector.get('authenticationService');
|
||||||
var connectionGroupService = $injector.get('connectionGroupService');
|
var connectionGroupService = $injector.get('connectionGroupService');
|
||||||
var permissionService = $injector.get('permissionService');
|
var permissionService = $injector.get('permissionService');
|
||||||
@@ -134,6 +135,9 @@ angular.module('manage').controller('manageController', ['$scope', '$injector',
|
|||||||
permissionService.getPermissions(authenticationService.getCurrentUserID())
|
permissionService.getPermissions(authenticationService.getCurrentUserID())
|
||||||
.success(function permissionsRetrieved(permissions) {
|
.success(function permissionsRetrieved(permissions) {
|
||||||
|
|
||||||
|
// Ignore permission to update root group
|
||||||
|
PermissionSet.removeConnectionGroupPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE, ConnectionGroup.ROOT_IDENTIFIER);
|
||||||
|
|
||||||
// Determine whether the current user can create new users
|
// Determine whether the current user can create new users
|
||||||
$scope.canCreateUsers =
|
$scope.canCreateUsers =
|
||||||
PermissionSet.hasSystemPermission(permissions, PermissionSet.SystemPermissionType.ADMINISTER)
|
PermissionSet.hasSystemPermission(permissions, PermissionSet.SystemPermissionType.ADMINISTER)
|
||||||
@@ -152,14 +156,25 @@ angular.module('manage').controller('manageController', ['$scope', '$injector',
|
|||||||
// Determine whether the current user can manage other users
|
// Determine whether the current user can manage other users
|
||||||
$scope.canManageUsers =
|
$scope.canManageUsers =
|
||||||
$scope.canCreateUsers
|
$scope.canCreateUsers
|
||||||
|| PermissionSet.hasUserPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE);
|
|| PermissionSet.hasUserPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE)
|
||||||
|
|| PermissionSet.hasUserPermission(permissions, PermissionSet.ObjectPermissionType.DELETE);
|
||||||
|
|
||||||
// Determine whether the current user can manage other connections
|
// Determine whether the current user can manage other connections or groups
|
||||||
$scope.canManageConnections =
|
$scope.canManageConnections =
|
||||||
|
|
||||||
|
// Permission to manage connections
|
||||||
$scope.canCreateConnections
|
$scope.canCreateConnections
|
||||||
|| $scope.canCreateConnectionGroups
|
|
||||||
|| PermissionSet.hasConnectionPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE)
|
|| PermissionSet.hasConnectionPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE)
|
||||||
|| PermissionSet.hasConnectionGroupPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE);
|
|| PermissionSet.hasConnectionPermission(permissions, PermissionSet.ObjectPermissionType.DELETE)
|
||||||
|
|
||||||
|
// Permission to manage groups
|
||||||
|
|| $scope.canCreateConnectionGroups
|
||||||
|
|| PermissionSet.hasConnectionGroupPermission(permissions, PermissionSet.ObjectPermissionType.UPDATE)
|
||||||
|
|| PermissionSet.hasConnectionGroupPermission(permissions, PermissionSet.ObjectPermissionType.DELETE);
|
||||||
|
|
||||||
|
// Return to home if there's nothing to do here
|
||||||
|
if (!$scope.canManageUsers && !$scope.canManageConnections)
|
||||||
|
$location.path('/');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user