Commit 74bf131930df891132fcc3ef72a17bb2994667ae

Authored by mp-loki
1 parent 5f16cbe2

Redirect to a previous page after login

... ... @@ -27,6 +27,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
27 27 currentUserDetails = null,
28 28 lastPublicDashboardId = null,
29 29 allowedDashboardIds = [],
  30 + redirectParams = null,
30 31 userTokenAccessEnabled = false,
31 32 userLoaded = false;
32 33
... ... @@ -56,6 +57,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
56 57 refreshTokenPending: refreshTokenPending,
57 58 updateAuthorizationHeader: updateAuthorizationHeader,
58 59 setAuthorizationRequestHeader: setAuthorizationRequestHeader,
  60 + setRedirectParams: setRedirectParams,
59 61 gotoDefaultPlace: gotoDefaultPlace,
60 62 forceDefaultPlace: forceDefaultPlace,
61 63 updateLastPublicDashboardId: updateLastPublicDashboardId,
... ... @@ -110,34 +112,24 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
110 112 lastPublicDashboardId = null;
111 113 userTokenAccessEnabled = false;
112 114 allowedDashboardIds = [];
113   - var deferred = $q.defer();
114 115 if (!jwtToken) {
115 116 clearTokenData();
116 117 if (notify) {
117 118 $rootScope.$broadcast('unauthenticated', doLogout);
118   - deferred.reject();
119 119 }
120   - deferred.resolve();
121 120 } else {
122 121 updateAndValidateToken(jwtToken, 'jwt_token', true);
123 122 updateAndValidateToken(refreshToken, 'refresh_token', true);
124 123 if (notify) {
125 124 loadUser(false).then(function success() {
126 125 $rootScope.$broadcast('authenticated');
127   - deferred.resolve();
128 126 }, function fail() {
129 127 $rootScope.$broadcast('unauthenticated');
130   - deferred.reject();
131 128 });
132 129 } else {
133   - loadUser(false).then(function success() {
134   - deferred.resolve();
135   - }, function fail() {
136   - deferred.reject();
137   - });
  130 + loadUser(false);
138 131 }
139 132 }
140   - return deferred.promise;
141 133 }
142 134
143 135 function isAuthenticated() {
... ... @@ -551,9 +543,15 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
551 543 return false;
552 544 }
553 545
  546 + function setRedirectParams(params) {
  547 + redirectParams = params;
  548 + }
  549 +
554 550 function gotoDefaultPlace(params) {
555 551 if (currentUser && isAuthenticated()) {
556   - var place = 'home.links';
  552 + var place = redirectParams ? redirectParams.toName : 'home.links';
  553 + params = redirectParams ? redirectParams.params : params;
  554 + redirectParams = null;
557 555 if (currentUser.authority === 'TENANT_ADMIN' || currentUser.authority === 'CUSTOMER_USER') {
558 556 if (userHasDefaultDashboard()) {
559 557 place = $rootScope.forceFullscreen ? 'dashboard' : 'home.dashboards.dashboard';
... ...
... ... @@ -127,7 +127,8 @@ export default function AppRun($rootScope, $window, $injector, $location, $log,
127 127 var redirectParams = {};
128 128 redirectParams.toName = to.name;
129 129 redirectParams.params = params;
130   - $state.go('login', redirectParams);
  130 + userService.setRedirectParams(redirectParams);
  131 + $state.go('login', params);
131 132 }
132 133 }
133 134 } else {
... ...
... ... @@ -20,7 +20,7 @@ import logoSvg from '../../svg/logo_title_white.svg';
20 20 /* eslint-enable import/no-unresolved, import/default */
21 21
22 22 /*@ngInject*/
23   -export default function LoginController(toast, loginService, userService, $state, $stateParams, $rootScope) {
  23 +export default function LoginController(toast, loginService, userService) {
24 24 var vm = this;
25 25
26 26 vm.logoSvg = logoSvg;
... ... @@ -30,22 +30,14 @@ export default function LoginController(toast, loginService, userService, $state
30 30 password: ''
31 31 };
32 32
33   - vm.params = $stateParams;
  33 + // vm.params = $stateParams;
34 34 vm.login = login;
35 35
36 36 function doLogin() {
37 37 loginService.login(vm.user).then(function success(response) {
38 38 var token = response.data.token;
39 39 var refreshToken = response.data.refreshToken;
40   - userService.setUserFromJwtToken(token, refreshToken, true).then(function() {
41   - if (vm.params.toName && vm.params.toName !== 'login') {
42   - if (vm.params.toName == 'home.dashboards.dashboard' && $rootScope.forceFullscreen) {
43   - $state.go('dashboard', vm.params.params)
44   - } else {
45   - $state.go(vm.params.toName, vm.params.params)
46   - }
47   - }
48   - });
  40 + userService.setUserFromJwtToken(token, refreshToken, true);
49 41 }, function fail(/*response*/) {
50 42 /*if (response && response.data && response.data.message) {
51 43 toast.showError(response.data.message);
... ...