Redirect to a previous page after login

This commit is contained in:
mp-loki 2018-11-15 16:34:37 +02:00
parent 5f16cbe23c
commit 74bf131930
3 changed files with 15 additions and 24 deletions

View File

@ -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';

View File

@ -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 {

View File

@ -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);