thingsboard-aplcache
Changes
ui/src/app/api/user.service.js 12(+11 -1)
ui/src/app/app.run.js 32(+6 -26)
ui/src/app/login/login.controller.js 13(+11 -2)
ui/src/app/login/login.routes.js 4(+4 -0)
Details
ui/src/app/api/user.service.js 12(+11 -1)
diff --git a/ui/src/app/api/user.service.js b/ui/src/app/api/user.service.js
index a49c4a0..64075b8 100644
--- a/ui/src/app/api/user.service.js
+++ b/ui/src/app/api/user.service.js
@@ -110,24 +110,34 @@ 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);
+ loadUser(false).then(function success() {
+ deferred.resolve();
+ }, function fail() {
+ deferred.reject();
+ });
}
}
+ return deferred.promise;
}
function isAuthenticated() {
ui/src/app/app.run.js 32(+6 -26)
diff --git a/ui/src/app/app.run.js b/ui/src/app/app.run.js
index 4667b09..407a472 100644
--- a/ui/src/app/app.run.js
+++ b/ui/src/app/app.run.js
@@ -27,7 +27,6 @@ export default function AppRun($rootScope, $window, $injector, $location, $log,
// ie11 fix
}
- var unauthorizedDialog = null;
var forbiddenDialog = null;
$rootScope.iframeMode = false;
@@ -125,11 +124,17 @@ export default function AppRun($rootScope, $window, $injector, $location, $log,
reloadUserFromPublicId();
} else if (to.module === 'private') {
evt.preventDefault();
+ /*
if (to.url === '/home' || to.url === '/') {
$state.go('login', params);
} else {
showUnauthorizedDialog();
}
+ */
+ var redirectParams = {};
+ redirectParams.toName = to.name;
+ redirectParams.params = params;
+ $state.go('login', redirectParams);
}
}
} else {
@@ -159,31 +164,6 @@ export default function AppRun($rootScope, $window, $injector, $location, $log,
userService.gotoDefaultPlace(params);
}
- function showUnauthorizedDialog() {
- if (unauthorizedDialog === null) {
- $translate(['access.unauthorized-access',
- 'access.unauthorized-access-text',
- 'access.unauthorized',
- 'action.cancel',
- 'action.sign-in']).then(function (translations) {
- if (unauthorizedDialog === null) {
- unauthorizedDialog = $mdDialog.confirm()
- .title(translations['access.unauthorized-access'])
- .textContent(translations['access.unauthorized-access-text'])
- .ariaLabel(translations['access.unauthorized'])
- .cancel(translations['action.cancel'])
- .ok(translations['action.sign-in']);
- $mdDialog.show(unauthorizedDialog).then(function () {
- unauthorizedDialog = null;
- $state.go('login');
- }, function () {
- unauthorizedDialog = null;
- });
- }
- });
- }
- }
-
function showForbiddenDialog() {
if (forbiddenDialog === null) {
$translate(['access.access-forbidden',
ui/src/app/login/login.controller.js 13(+11 -2)
diff --git a/ui/src/app/login/login.controller.js b/ui/src/app/login/login.controller.js
index 3f378ac..73ad0fb 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/*, $rootScope, $log, $translate*/) {
+export default function LoginController(toast, loginService, userService, $state, $stateParams, $rootScope) {
var vm = this;
vm.logoSvg = logoSvg;
@@ -30,13 +30,22 @@ export default function LoginController(toast, loginService, userService/*, $roo
password: ''
};
+ 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);
+ 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)
+ }
+ }
+ });
}, function fail(/*response*/) {
/*if (response && response.data && response.data.message) {
toast.showError(response.data.message);
ui/src/app/login/login.routes.js 4(+4 -0)
diff --git a/ui/src/app/login/login.routes.js b/ui/src/app/login/login.routes.js
index 0c6a545..d623930 100644
--- a/ui/src/app/login/login.routes.js
+++ b/ui/src/app/login/login.routes.js
@@ -27,6 +27,10 @@ export default function LoginRoutes($stateProvider) {
$stateProvider.state('login', {
url: '/login',
module: 'public',
+ params: {
+ params: null,
+ toName: null
+ },
views: {
"@": {
controller: 'LoginController',