diff --git a/ui/src/app/api/user.service.js b/ui/src/app/api/user.service.js index 64075b8abf..71c04ce980 100644 --- a/ui/src/app/api/user.service.js +++ b/ui/src/app/api/user.service.js @@ -27,6 +27,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time currentUserDetails = null, lastPublicDashboardId = null, allowedDashboardIds = [], + redirectParams = null, userTokenAccessEnabled = false, userLoaded = false; @@ -56,6 +57,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time refreshTokenPending: refreshTokenPending, updateAuthorizationHeader: updateAuthorizationHeader, setAuthorizationRequestHeader: setAuthorizationRequestHeader, + setRedirectParams: setRedirectParams, gotoDefaultPlace: gotoDefaultPlace, forceDefaultPlace: forceDefaultPlace, updateLastPublicDashboardId: updateLastPublicDashboardId, @@ -110,34 +112,24 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time lastPublicDashboardId = null; userTokenAccessEnabled = false; allowedDashboardIds = []; - var deferred = $q.defer(); if (!jwtToken) { clearTokenData(); if (notify) { $rootScope.$broadcast('unauthenticated', doLogout); - deferred.reject(); } - deferred.resolve(); } else { updateAndValidateToken(jwtToken, 'jwt_token', true); updateAndValidateToken(refreshToken, 'refresh_token', true); if (notify) { loadUser(false).then(function success() { $rootScope.$broadcast('authenticated'); - deferred.resolve(); }, function fail() { $rootScope.$broadcast('unauthenticated'); - deferred.reject(); }); } else { - loadUser(false).then(function success() { - deferred.resolve(); - }, function fail() { - deferred.reject(); - }); + loadUser(false); } } - return deferred.promise; } function isAuthenticated() { @@ -551,9 +543,15 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time return false; } + function setRedirectParams(params) { + redirectParams = params; + } + function gotoDefaultPlace(params) { if (currentUser && isAuthenticated()) { - var place = 'home.links'; + var place = redirectParams ? redirectParams.toName : 'home.links'; + params = redirectParams ? redirectParams.params : params; + redirectParams = null; if (currentUser.authority === 'TENANT_ADMIN' || currentUser.authority === 'CUSTOMER_USER') { if (userHasDefaultDashboard()) { place = $rootScope.forceFullscreen ? 'dashboard' : 'home.dashboards.dashboard'; diff --git a/ui/src/app/app.run.js b/ui/src/app/app.run.js index 8a209450b5..8064ae5917 100644 --- a/ui/src/app/app.run.js +++ b/ui/src/app/app.run.js @@ -127,7 +127,8 @@ export default function AppRun($rootScope, $window, $injector, $location, $log, var redirectParams = {}; redirectParams.toName = to.name; redirectParams.params = params; - $state.go('login', redirectParams); + userService.setRedirectParams(redirectParams); + $state.go('login', params); } } } else { diff --git a/ui/src/app/login/login.controller.js b/ui/src/app/login/login.controller.js index 73ad0fb89e..ffda552be1 100644 --- a/ui/src/app/login/login.controller.js +++ b/ui/src/app/login/login.controller.js @@ -20,7 +20,7 @@ import logoSvg from '../../svg/logo_title_white.svg'; /* eslint-enable import/no-unresolved, import/default */ /*@ngInject*/ -export default function LoginController(toast, loginService, userService, $state, $stateParams, $rootScope) { +export default function LoginController(toast, loginService, userService) { var vm = this; vm.logoSvg = logoSvg; @@ -30,22 +30,14 @@ export default function LoginController(toast, loginService, userService, $state password: '' }; - vm.params = $stateParams; + // vm.params = $stateParams; vm.login = login; function doLogin() { loginService.login(vm.user).then(function success(response) { var token = response.data.token; var refreshToken = response.data.refreshToken; - userService.setUserFromJwtToken(token, refreshToken, true).then(function() { - if (vm.params.toName && vm.params.toName !== 'login') { - if (vm.params.toName == 'home.dashboards.dashboard' && $rootScope.forceFullscreen) { - $state.go('dashboard', vm.params.params) - } else { - $state.go(vm.params.toName, vm.params.params) - } - } - }); + userService.setUserFromJwtToken(token, refreshToken, true); }, function fail(/*response*/) { /*if (response && response.data && response.data.message) { toast.showError(response.data.message);