From b95b1131b6314ef579be46b2ba23a313c5e1dca2 Mon Sep 17 00:00:00 2001 From: Nick Couchman Date: Mon, 19 Feb 2018 09:57:07 -0500 Subject: [PATCH 1/4] GUACAMOLE-508: Take user to home page when Settings pages are available. --- .../navigation/services/userPageService.js | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/guacamole/src/main/webapp/app/navigation/services/userPageService.js b/guacamole/src/main/webapp/app/navigation/services/userPageService.js index 479ae1a9c..aff16b597 100644 --- a/guacamole/src/main/webapp/app/navigation/services/userPageService.js +++ b/guacamole/src/main/webapp/app/navigation/services/userPageService.js @@ -60,9 +60,13 @@ angular.module('navigation').factory('userPageService', ['$injector', * @returns {PageDefinition} * The user's home page. */ - var generateHomePage = function generateHomePage(rootGroups) { + var generateHomePage = function generateHomePage(rootGroups,permissions) { var homePage = null; + var settingsPages = generateSettingsPages(permissions); + + if (settingsPages.length > 1) + return SYSTEM_HOME_PAGE; // Determine whether a connection or balancing group should serve as // the home page @@ -140,13 +144,20 @@ angular.module('navigation').factory('userPageService', ['$injector', var deferred = $q.defer(); // Resolve promise using home page derived from root connection groups - dataSourceService.apply( + var getRootGroups = dataSourceService.apply( connectionGroupService.getConnectionGroupTree, authenticationService.getAvailableDataSources(), ConnectionGroup.ROOT_IDENTIFIER - ) - .then(function rootConnectionGroupsRetrieved(rootGroups) { - deferred.resolve(generateHomePage(rootGroups)); + ); + var getPermissionSets = dataSourceService.apply( + permissionService.getPermissions, + authenticationService.getAvailableDataSources(), + authenticationService.getCurrentUsername() + ); + + $q.all([getRootGroups,getPermissionSets]) + .then(function rootConnectionGroupsPermissionsRetrieved(data) { + deferred.resolve(generateHomePage(data[0],data[1])); }); return deferred.promise; @@ -342,7 +353,7 @@ angular.module('navigation').factory('userPageService', ['$injector', var pages = []; // Get home page and settings pages - var homePage = generateHomePage(rootGroups); + var homePage = generateHomePage(rootGroups, permissions); var settingsPages = generateSettingsPages(permissions); // Only include the home page in the list of main pages if the user @@ -417,4 +428,4 @@ angular.module('navigation').factory('userPageService', ['$injector', return service; -}]); \ No newline at end of file +}]); From 4869968c8f28c0dea5c5b8225908f8d2cc9916f9 Mon Sep 17 00:00:00 2001 From: Nick Couchman Date: Fri, 2 Mar 2018 21:35:55 -0500 Subject: [PATCH 2/4] GUACAMOLE-508: Style and comment fix-ups. --- .../webapp/app/navigation/services/userPageService.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/guacamole/src/main/webapp/app/navigation/services/userPageService.js b/guacamole/src/main/webapp/app/navigation/services/userPageService.js index aff16b597..6100237f0 100644 --- a/guacamole/src/main/webapp/app/navigation/services/userPageService.js +++ b/guacamole/src/main/webapp/app/navigation/services/userPageService.js @@ -57,14 +57,22 @@ angular.module('navigation').factory('userPageService', ['$injector', * A map of all root connection groups visible to the current user, * where each key is the identifier of the corresponding data source. * + * @param {Object.} permissions + * A map of all permissions granted to the current user, where each + * key is the identifier of the corresponding data source. + * + * @param {Object. 1) return SYSTEM_HOME_PAGE; From 8ad579b90b7f219085f5b66a0643e65351476df6 Mon Sep 17 00:00:00 2001 From: Nick Couchman Date: Fri, 2 Mar 2018 21:45:21 -0500 Subject: [PATCH 3/4] GUACAMOLE-508: Use object instead of array for multiple promises. --- .../main/webapp/app/navigation/services/userPageService.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/guacamole/src/main/webapp/app/navigation/services/userPageService.js b/guacamole/src/main/webapp/app/navigation/services/userPageService.js index 6100237f0..b9144a6a8 100644 --- a/guacamole/src/main/webapp/app/navigation/services/userPageService.js +++ b/guacamole/src/main/webapp/app/navigation/services/userPageService.js @@ -163,9 +163,12 @@ angular.module('navigation').factory('userPageService', ['$injector', authenticationService.getCurrentUsername() ); - $q.all([getRootGroups,getPermissionSets]) + $q.all({ + rootGroups : getRootGroups, + permissionsSets : getPermissionSets + }) .then(function rootConnectionGroupsPermissionsRetrieved(data) { - deferred.resolve(generateHomePage(data[0],data[1])); + deferred.resolve(generateHomePage(data.rootGroups,data.permissionsSets)); }); return deferred.promise; From 0111b031e8374ddc1a39239aa4d0843f5ccca72d Mon Sep 17 00:00:00 2001 From: Nick Couchman Date: Sat, 3 Mar 2018 07:49:54 -0500 Subject: [PATCH 4/4] GUACAMOLE-508: More comment clean up. --- .../webapp/app/navigation/services/userPageService.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/guacamole/src/main/webapp/app/navigation/services/userPageService.js b/guacamole/src/main/webapp/app/navigation/services/userPageService.js index b9144a6a8..749564bd1 100644 --- a/guacamole/src/main/webapp/app/navigation/services/userPageService.js +++ b/guacamole/src/main/webapp/app/navigation/services/userPageService.js @@ -61,8 +61,6 @@ angular.module('navigation').factory('userPageService', ['$injector', * A map of all permissions granted to the current user, where each * key is the identifier of the corresponding data source. * - * @param {Object. 1) return SYSTEM_HOME_PAGE;