mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 09:03:21 +00:00 
			
		
		
		
	Merge pull request #60 from glyptodon/secondary-auth
GUAC-971: Restore secondary authentication
This commit is contained in:
		| @@ -25,55 +25,113 @@ | ||||
|  */ | ||||
| angular.module('index').config(['$routeProvider', '$locationProvider',  | ||||
|         function indexRouteConfig($routeProvider, $locationProvider) { | ||||
|              | ||||
|  | ||||
|     // Disable HTML5 mode (use # for routing) | ||||
|     $locationProvider.html5Mode(false); | ||||
|      | ||||
|     $routeProvider | ||||
|         .when('/', { | ||||
|             title: 'APP.NAME', | ||||
|             bodyClassName: 'home', | ||||
|             templateUrl: 'app/home/templates/home.html', | ||||
|             controller: 'homeController' | ||||
|         }) | ||||
|         .when('/manage/', { | ||||
|             title: 'APP.NAME', | ||||
|             bodyClassName: 'manage', | ||||
|             templateUrl: 'app/manage/templates/manage.html', | ||||
|             controller: 'manageController' | ||||
|         }) | ||||
|         .when('/manage/connections/:id?', { | ||||
|             title: 'APP.NAME', | ||||
|             bodyClassName: 'manage', | ||||
|             templateUrl: 'app/manage/templates/manageConnection.html', | ||||
|             controller: 'manageConnectionController' | ||||
|         }) | ||||
|         .when('/manage/connectionGroups/:id?', { | ||||
|             title: 'APP.NAME', | ||||
|             bodyClassName: 'manage', | ||||
|             templateUrl: 'app/manage/templates/manageConnectionGroup.html', | ||||
|             controller: 'manageConnectionGroupController' | ||||
|         }) | ||||
|         .when('/manage/users/:id', { | ||||
|             title: 'APP.NAME', | ||||
|             bodyClassName: 'manage', | ||||
|             templateUrl: 'app/manage/templates/manageUser.html', | ||||
|             controller: 'manageUserController' | ||||
|         }) | ||||
|         .when('/login/', { | ||||
|             title: 'APP.NAME', | ||||
|             bodyClassName: 'login', | ||||
|             templateUrl: 'app/login/templates/login.html', | ||||
|             controller: 'loginController' | ||||
|         }) | ||||
|         .when('/client/:type/:id/:params?', { | ||||
|             bodyClassName: 'client', | ||||
|             templateUrl: 'app/client/templates/client.html', | ||||
|             controller: 'clientController' | ||||
|         }) | ||||
|         .otherwise({ | ||||
|             redirectTo: '/' | ||||
|  | ||||
|     /** | ||||
|      * Attempts to re-authenticate with the Guacamole server, sending any | ||||
|      * query parameters in the URL, along with the current auth token, and | ||||
|      * updating locally stored token if necessary. | ||||
|      * | ||||
|      * @param {Service} $injector | ||||
|      *     The Angular $injector service. | ||||
|      *  | ||||
|      * @returns {Promise} | ||||
|      *     A promise which resolves successfully only after an attempt to | ||||
|      *     re-authenticate has been made. | ||||
|      */ | ||||
|     var updateCurrentToken = ['$injector', function updateCurrentToken($injector) { | ||||
|  | ||||
|         // Required services | ||||
|         var $location             = $injector.get('$location'); | ||||
|         var $q                    = $injector.get('$q'); | ||||
|         var authenticationService = $injector.get('authenticationService'); | ||||
|  | ||||
|         // Promise for authentication attempt | ||||
|         var authAttempt = $q.defer(); | ||||
|  | ||||
|         // Re-authenticate including any parameters in URL | ||||
|         authenticationService.updateCurrentToken($location.search()) | ||||
|         ['finally'](function authenticationAttemptComplete() { | ||||
|             authAttempt.resolve(); | ||||
|         }); | ||||
|  | ||||
|         // Return promise that will resolve regardless of success/failure | ||||
|         return authAttempt.promise; | ||||
|  | ||||
|     }]; | ||||
|  | ||||
|     // Configure each possible route | ||||
|     $routeProvider | ||||
|  | ||||
|         // Home screen | ||||
|         .when('/', { | ||||
|             title         : 'APP.NAME', | ||||
|             bodyClassName : 'home', | ||||
|             templateUrl   : 'app/home/templates/home.html', | ||||
|             controller    : 'homeController', | ||||
|             resolve       : { updateCurrentToken: updateCurrentToken } | ||||
|         }) | ||||
|  | ||||
|         // Management screen | ||||
|         .when('/manage/', { | ||||
|             title         : 'APP.NAME', | ||||
|             bodyClassName : 'manage', | ||||
|             templateUrl   : 'app/manage/templates/manage.html', | ||||
|             controller    : 'manageController', | ||||
|             resolve       : { updateCurrentToken: updateCurrentToken } | ||||
|         }) | ||||
|  | ||||
|         // Connection editor | ||||
|         .when('/manage/connections/:id?', { | ||||
|             title         : 'APP.NAME', | ||||
|             bodyClassName : 'manage', | ||||
|             templateUrl   : 'app/manage/templates/manageConnection.html', | ||||
|             controller    : 'manageConnectionController', | ||||
|             resolve       : { updateCurrentToken: updateCurrentToken } | ||||
|         }) | ||||
|  | ||||
|         // Connection group editor | ||||
|         .when('/manage/connectionGroups/:id?', { | ||||
|             title         : 'APP.NAME', | ||||
|             bodyClassName : 'manage', | ||||
|             templateUrl   : 'app/manage/templates/manageConnectionGroup.html', | ||||
|             controller    : 'manageConnectionGroupController', | ||||
|             resolve       : { updateCurrentToken: updateCurrentToken } | ||||
|         }) | ||||
|  | ||||
|         // User editor | ||||
|         .when('/manage/users/:id', { | ||||
|             title         : 'APP.NAME', | ||||
|             bodyClassName : 'manage', | ||||
|             templateUrl   : 'app/manage/templates/manageUser.html', | ||||
|             controller    : 'manageUserController', | ||||
|             resolve       : { updateCurrentToken: updateCurrentToken } | ||||
|         }) | ||||
|  | ||||
|         // Login screen | ||||
|         .when('/login/', { | ||||
|             title         : 'APP.NAME', | ||||
|             bodyClassName : 'login', | ||||
|             templateUrl   : 'app/login/templates/login.html', | ||||
|             controller    : 'loginController' | ||||
|             // No need to update token here - the login screen ignores all auth | ||||
|         }) | ||||
|  | ||||
|         // Client view | ||||
|         .when('/client/:type/:id/:params?', { | ||||
|             bodyClassName : 'client', | ||||
|             templateUrl   : 'app/client/templates/client.html', | ||||
|             controller    : 'clientController', | ||||
|             resolve       : { updateCurrentToken: updateCurrentToken } | ||||
|         }) | ||||
|  | ||||
|         // Redirect to home screen if page not found | ||||
|         .otherwise({ | ||||
|             redirectTo : '/' | ||||
|         }); | ||||
|  | ||||
| }]); | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user