mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 00:53:21 +00:00 
			
		
		
		
	GUAC-1126: Re-route user within route config.
This commit is contained in:
		| @@ -32,7 +32,6 @@ angular.module('home').controller('homeController', ['$scope', '$injector', | ||||
|     // Get required services | ||||
|     var authenticationService  = $injector.get("authenticationService"); | ||||
|     var connectionGroupService = $injector.get("connectionGroupService"); | ||||
|     var userPageService        = $injector.get("userPageService"); | ||||
|      | ||||
|     /** | ||||
|      * The root connection group, or null if the connection group hierarchy has | ||||
| @@ -61,10 +60,4 @@ angular.module('home').controller('homeController', ['$scope', '$injector', | ||||
|         $scope.rootConnectionGroup = rootConnectionGroup; | ||||
|     }); | ||||
|  | ||||
|     // Navigate to home page, if not already there | ||||
|     userPageService.getHomePage() | ||||
|     .then(function homePageRetrieved(homePage) { | ||||
|         $location.url(homePage.url); | ||||
|     }); | ||||
|  | ||||
| }]); | ||||
|   | ||||
| @@ -62,6 +62,57 @@ angular.module('index').config(['$routeProvider', '$locationProvider', | ||||
|  | ||||
|     }]; | ||||
|  | ||||
|     /** | ||||
|      * Redirects the user to their home page. This necessarily requires | ||||
|      * attempting to re-authenticate with the Guacamole server, as the user's | ||||
|      * credentials may have changed, and thus their most-appropriate home page | ||||
|      * may have changed as well. | ||||
|      * | ||||
|      * @param {Service} $injector | ||||
|      *     The Angular $injector service. | ||||
|      *  | ||||
|      * @returns {Promise} | ||||
|      *     A promise which resolves successfully only after an attempt to | ||||
|      *     re-authenticate and determine the user's proper home page has been | ||||
|      *     made. | ||||
|      */ | ||||
|     var routeToUserHomePage = ['$injector', function routeToUserHomePage($injector) { | ||||
|  | ||||
|         // Required services | ||||
|         var $location       = $injector.get('$location'); | ||||
|         var $q              = $injector.get('$q'); | ||||
|         var userPageService = $injector.get('userPageService'); | ||||
|  | ||||
|         // Promise for redirection attempt | ||||
|         var redirect = $q.defer(); | ||||
|  | ||||
|         // Re-authenticate including any parameters in URL | ||||
|         $injector.invoke(updateCurrentToken) | ||||
|         .then(function tokenUpdateComplete() { | ||||
|  | ||||
|             // Redirect to home page | ||||
|             userPageService.getHomePage() | ||||
|             .then(function homePageRetrieved(homePage) { | ||||
|                 $location.url(homePage.url); | ||||
|             }) | ||||
|  | ||||
|             // If retrieval of home page fails, assume '/' | ||||
|             ['catch'](function homePageFailed() { | ||||
|                 $location.url('/'); | ||||
|             }) | ||||
|  | ||||
|             // Resolve promise in either case | ||||
|             ['finally'](function retrievalAttemptComplete() { | ||||
|                 redirect.resolve(); | ||||
|             }); | ||||
|  | ||||
|         }); | ||||
|  | ||||
|         // Return promise that will resolve regardless of success/failure | ||||
|         return redirect.promise; | ||||
|  | ||||
|     }]; | ||||
|  | ||||
|     // Configure each possible route | ||||
|     $routeProvider | ||||
|  | ||||
| @@ -71,7 +122,7 @@ angular.module('index').config(['$routeProvider', '$locationProvider', | ||||
|             bodyClassName : 'home', | ||||
|             templateUrl   : 'app/home/templates/home.html', | ||||
|             controller    : 'homeController', | ||||
|             resolve       : { updateCurrentToken: updateCurrentToken } | ||||
|             resolve       : { routeToUserHomePage: routeToUserHomePage } | ||||
|         }) | ||||
|  | ||||
|         // Connection management screen | ||||
| @@ -147,9 +198,7 @@ angular.module('index').config(['$routeProvider', '$locationProvider', | ||||
|  | ||||
|         // Redirect to home screen if page not found | ||||
|         .otherwise({ | ||||
|             redirectTo : '/' | ||||
|             resolve : { routeToUserHomePage: routeToUserHomePage } | ||||
|         }); | ||||
|  | ||||
| }]); | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -29,6 +29,7 @@ angular.module('index', [ | ||||
|     'home', | ||||
|     'login', | ||||
|     'manage', | ||||
|     'navigation', | ||||
|     'ngRoute', | ||||
|     'ngTouch', | ||||
|     'notification', | ||||
|   | ||||
		Reference in New Issue
	
	Block a user