mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-08 14:11:21 +00:00
GUACAMOLE-508: Merge changes which take the user to the system home page if they have administrative access.
This commit is contained in:
@@ -57,12 +57,24 @@ angular.module('navigation').factory('userPageService', ['$injector',
|
|||||||
* A map of all root connection groups visible to the current user,
|
* A map of all root connection groups visible to the current user,
|
||||||
* where each key is the identifier of the corresponding data source.
|
* where each key is the identifier of the corresponding data source.
|
||||||
*
|
*
|
||||||
|
* @param {Object.<String, PermissionSet>} permissions
|
||||||
|
* A map of all permissions granted to the current user, where each
|
||||||
|
* key is the identifier of the corresponding data source.
|
||||||
|
*
|
||||||
* @returns {PageDefinition}
|
* @returns {PageDefinition}
|
||||||
* The user's home page.
|
* The user's home page.
|
||||||
*/
|
*/
|
||||||
var generateHomePage = function generateHomePage(rootGroups) {
|
var generateHomePage = function generateHomePage(rootGroups, permissions) {
|
||||||
|
|
||||||
var homePage = null;
|
var homePage = null;
|
||||||
|
var settingsPages = generateSettingsPages(permissions);
|
||||||
|
|
||||||
|
// If user has access to settings pages, return home page and skip
|
||||||
|
// evaluation for automatic connections. The Preferences page is
|
||||||
|
// a Settings page and is always visible, so we look for more than
|
||||||
|
// one to indicate access to administrative pages.
|
||||||
|
if (settingsPages.length > 1)
|
||||||
|
return SYSTEM_HOME_PAGE;
|
||||||
|
|
||||||
// Determine whether a connection or balancing group should serve as
|
// Determine whether a connection or balancing group should serve as
|
||||||
// the home page
|
// the home page
|
||||||
@@ -140,13 +152,23 @@ angular.module('navigation').factory('userPageService', ['$injector',
|
|||||||
var deferred = $q.defer();
|
var deferred = $q.defer();
|
||||||
|
|
||||||
// Resolve promise using home page derived from root connection groups
|
// Resolve promise using home page derived from root connection groups
|
||||||
dataSourceService.apply(
|
var getRootGroups = dataSourceService.apply(
|
||||||
connectionGroupService.getConnectionGroupTree,
|
connectionGroupService.getConnectionGroupTree,
|
||||||
authenticationService.getAvailableDataSources(),
|
authenticationService.getAvailableDataSources(),
|
||||||
ConnectionGroup.ROOT_IDENTIFIER
|
ConnectionGroup.ROOT_IDENTIFIER
|
||||||
)
|
);
|
||||||
.then(function rootConnectionGroupsRetrieved(rootGroups) {
|
var getPermissionSets = dataSourceService.apply(
|
||||||
deferred.resolve(generateHomePage(rootGroups));
|
permissionService.getPermissions,
|
||||||
|
authenticationService.getAvailableDataSources(),
|
||||||
|
authenticationService.getCurrentUsername()
|
||||||
|
);
|
||||||
|
|
||||||
|
$q.all({
|
||||||
|
rootGroups : getRootGroups,
|
||||||
|
permissionsSets : getPermissionSets
|
||||||
|
})
|
||||||
|
.then(function rootConnectionGroupsPermissionsRetrieved(data) {
|
||||||
|
deferred.resolve(generateHomePage(data.rootGroups,data.permissionsSets));
|
||||||
});
|
});
|
||||||
|
|
||||||
return deferred.promise;
|
return deferred.promise;
|
||||||
@@ -342,7 +364,7 @@ angular.module('navigation').factory('userPageService', ['$injector',
|
|||||||
var pages = [];
|
var pages = [];
|
||||||
|
|
||||||
// Get home page and settings pages
|
// Get home page and settings pages
|
||||||
var homePage = generateHomePage(rootGroups);
|
var homePage = generateHomePage(rootGroups, permissions);
|
||||||
var settingsPages = generateSettingsPages(permissions);
|
var settingsPages = generateSettingsPages(permissions);
|
||||||
|
|
||||||
// Only include the home page in the list of main pages if the user
|
// Only include the home page in the list of main pages if the user
|
||||||
@@ -417,4 +439,4 @@ angular.module('navigation').factory('userPageService', ['$injector',
|
|||||||
|
|
||||||
return service;
|
return service;
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
|
Reference in New Issue
Block a user