mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-07 13:41:21 +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
|
* Returns all settings pages that the current user can visit. This can
|
||||||
* include the home page, manage pages, etc. In the case that there are no
|
* include any of the various manage pages.
|
||||||
* 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
|
* @param {PermissionSet} permissions
|
||||||
* The permissions for the current user.
|
* The permissions for the current user.
|
||||||
*
|
*
|
||||||
* @returns {Page[]}
|
* @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 = [];
|
var pages = [];
|
||||||
|
|
||||||
@@ -203,12 +199,6 @@ angular.module('navigation').factory('userPageService', ['$injector',
|
|||||||
// A user must be a system administrator to manage sessions
|
// A user must be a system administrator to manage sessions
|
||||||
PermissionSet.hasSystemPermission(permissions, PermissionSet.SystemPermissionType.ADMINISTER);
|
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 user can manage users, add link to user management page
|
||||||
if (canManageUsers) {
|
if (canManageUsers) {
|
||||||
pages.push(new Page(
|
pages.push(new Page(
|
||||||
@@ -236,6 +226,60 @@ angular.module('navigation').factory('userPageService', ['$injector',
|
|||||||
return pages;
|
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
|
* 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,
|
* current user can visit. This can include the home page, manage pages,
|
||||||
|
Reference in New Issue
Block a user