mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
GUAC-1053: Allow separate retrieval of settings pages from userPageService.
This commit is contained in:
@@ -137,20 +137,16 @@ angular.module('navigation').factory('userPageService', ['$injector',
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns all the main pages that the current user can visit. This can
|
||||
* include the home page, manage pages, etc. In the case that there are no
|
||||
* applicable pages of this sort, it may return a client page.
|
||||
* Returns all settings pages that the current user can visit. This can
|
||||
* include any of the various manage pages.
|
||||
*
|
||||
* @param {ConnectionGroup} rootGroup
|
||||
* The root of the connection group tree for the current user.
|
||||
*
|
||||
* @param {PermissionSet} permissions
|
||||
* The permissions for the current user.
|
||||
*
|
||||
* @returns {Page[]}
|
||||
* An array of all main pages that the current user can visit.
|
||||
* An array of all settings pages that the current user can visit.
|
||||
*/
|
||||
var generateMainPages = function generateMainPages(rootGroup, permissions) {
|
||||
var generateSettingsPages = function generateSettingsPages(permissions) {
|
||||
|
||||
var pages = [];
|
||||
|
||||
@@ -203,12 +199,6 @@ angular.module('navigation').factory('userPageService', ['$injector',
|
||||
// A user must be a system administrator to manage sessions
|
||||
PermissionSet.hasSystemPermission(permissions, PermissionSet.SystemPermissionType.ADMINISTER);
|
||||
|
||||
// Only include the home page in the list of main pages if the user
|
||||
// can navigate elsewhere.
|
||||
var homePage = generateHomePage(rootGroup);
|
||||
if (homePage === SYSTEM_HOME_PAGE)
|
||||
pages.push(homePage);
|
||||
|
||||
// If user can manage users, add link to user management page
|
||||
if (canManageUsers) {
|
||||
pages.push(new Page(
|
||||
@@ -236,6 +226,60 @@ angular.module('navigation').factory('userPageService', ['$injector',
|
||||
return pages;
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns a promise which resolves to an array of all settings pages that
|
||||
* the current user can visit. This can include any of the various manage
|
||||
* pages.
|
||||
*
|
||||
* @returns {Promise.<Page[]>}
|
||||
* A promise which resolves to an array of all settings pages that the
|
||||
* current user can visit.
|
||||
*/
|
||||
service.getSettingsPages = function getSettingsPages() {
|
||||
|
||||
var deferred = $q.defer();
|
||||
|
||||
// Retrieve current permissions, resolving main pages if possible
|
||||
// Resolve promise using settings pages derived from permissions
|
||||
permissionService.getPermissions(authenticationService.getCurrentUserID())
|
||||
.success(function permissionsRetrieved(permissions) {
|
||||
deferred.resolve(generateSettingsPages(permissions));
|
||||
});
|
||||
|
||||
return deferred.promise;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns all the main pages that the current user can visit. This can
|
||||
* include the home page, manage pages, etc. In the case that there are no
|
||||
* applicable pages of this sort, it may return a client page.
|
||||
*
|
||||
* @param {ConnectionGroup} rootGroup
|
||||
* The root of the connection group tree for the current user.
|
||||
*
|
||||
* @param {PermissionSet} permissions
|
||||
* The permissions for the current user.
|
||||
*
|
||||
* @returns {Page[]}
|
||||
* An array of all main pages that the current user can visit.
|
||||
*/
|
||||
var generateMainPages = function generateMainPages(rootGroup, permissions) {
|
||||
|
||||
var pages = [];
|
||||
|
||||
// Only include the home page in the list of main pages if the user
|
||||
// can navigate elsewhere.
|
||||
var homePage = generateHomePage(rootGroup);
|
||||
if (homePage === SYSTEM_HOME_PAGE)
|
||||
pages.push(homePage);
|
||||
|
||||
// Add any settings pages
|
||||
pages = pages.concat(generateSettingsPages(permissions));
|
||||
|
||||
return pages;
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns a promise which resolves to an array of all main pages that the
|
||||
* current user can visit. This can include the home page, manage pages,
|
||||
|
Reference in New Issue
Block a user