2016-09-03 06:03:13 +02:00
|
|
|
|
angular
|
|
|
|
|
.module('bit')
|
|
|
|
|
|
|
|
|
|
.config(function ($stateProvider, $urlRouterProvider, $httpProvider, jwtInterceptorProvider) {
|
|
|
|
|
jwtInterceptorProvider.urlParam = 'access_token';
|
|
|
|
|
jwtInterceptorProvider.tokenGetter = /*@ngInject*/ function (config, appSettings, tokenService) {
|
|
|
|
|
if (config.url.indexOf(appSettings.apiUri) === 0) {
|
|
|
|
|
tokenService.getToken(function (token) {
|
|
|
|
|
return token;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if ($httpProvider.defaults.headers.post) {
|
|
|
|
|
$httpProvider.defaults.headers.post = {};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$httpProvider.defaults.headers.post['Content-Type'] = 'text/plain; charset=utf-8';
|
|
|
|
|
|
|
|
|
|
//$httpProvider.interceptors.push('apiInterceptor');
|
|
|
|
|
$httpProvider.interceptors.push('jwtInterceptor');
|
|
|
|
|
|
|
|
|
|
$urlRouterProvider.otherwise(function ($injector, $location) {
|
|
|
|
|
var $state = $injector.get("$state");
|
|
|
|
|
$state.go("login");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$stateProvider
|
|
|
|
|
.state('login', {
|
|
|
|
|
url: "/login",
|
|
|
|
|
controller: 'accountsLoginController',
|
|
|
|
|
templateUrl: "app/accounts/views/accountsLogin.html",
|
|
|
|
|
data: {
|
|
|
|
|
authorize: false
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.state('login.twoFactor', {
|
|
|
|
|
url: "/two-factor",
|
|
|
|
|
controller: 'accountsLoginController',
|
|
|
|
|
templateUrl: "app/accounts/views/accountsLoginTwoFactor.html"
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
.state('tabs', {
|
|
|
|
|
url: "/tab",
|
|
|
|
|
abstract: true,
|
|
|
|
|
templateUrl: "app/global/tabs.html",
|
|
|
|
|
data: {
|
|
|
|
|
authorize: true
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.state('tabs.current', {
|
|
|
|
|
url: "/current",
|
2016-09-09 03:13:54 +02:00
|
|
|
|
templateUrl: "app/current/views/current.html",
|
|
|
|
|
controller: 'currentController'
|
2016-09-03 06:03:13 +02:00
|
|
|
|
})
|
|
|
|
|
.state('tabs.vault', {
|
|
|
|
|
url: "/vault",
|
2016-09-09 03:13:54 +02:00
|
|
|
|
templateUrl: "app/vault/views/vault.html",
|
|
|
|
|
controller: 'vaultController'
|
2016-09-03 06:03:13 +02:00
|
|
|
|
})
|
|
|
|
|
.state('tabs.settings', {
|
|
|
|
|
url: "/settings",
|
2016-09-09 03:13:54 +02:00
|
|
|
|
templateUrl: "app/settings/views/settings.html",
|
|
|
|
|
controller: 'settingsController'
|
2016-09-03 06:03:13 +02:00
|
|
|
|
})
|
|
|
|
|
.state('tabs.tools', {
|
|
|
|
|
url: "/tools",
|
2016-09-09 03:13:54 +02:00
|
|
|
|
templateUrl: "app/tools/views/tools.html",
|
|
|
|
|
controller: 'toolsController'
|
|
|
|
|
})
|
2016-09-09 04:23:56 +02:00
|
|
|
|
.state('viewSite', {
|
|
|
|
|
url: "/view-site?siteId",
|
|
|
|
|
templateUrl: "app/vault/views/vaultViewSite.html",
|
|
|
|
|
controller: 'vaultViewSiteController',
|
|
|
|
|
params: {
|
|
|
|
|
siteId: null
|
|
|
|
|
},
|
2016-09-09 03:13:54 +02:00
|
|
|
|
data: {
|
|
|
|
|
authorize: true
|
|
|
|
|
}
|
2016-09-09 04:23:56 +02:00
|
|
|
|
});
|
2016-09-03 06:03:13 +02:00
|
|
|
|
})
|
2016-09-03 06:11:57 +02:00
|
|
|
|
.run(function ($rootScope, userService, loginService, tokenService, $state) {
|
2016-09-03 06:03:13 +02:00
|
|
|
|
$rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
|
|
|
|
|
tokenService.getToken(function (token) {
|
|
|
|
|
userService.isAuthenticated(function (isAuthenticated) {
|
|
|
|
|
if (!toState.data || !toState.data.authorize) {
|
2016-09-03 06:11:57 +02:00
|
|
|
|
if (isAuthenticated && !tokenService.isTokenExpired(token)) {
|
2016-09-03 06:03:13 +02:00
|
|
|
|
event.preventDefault();
|
|
|
|
|
$state.go('tabs.current');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2016-09-03 06:11:57 +02:00
|
|
|
|
if (!isAuthenticated || tokenService.isTokenExpired(token)) {
|
2016-09-03 06:03:13 +02:00
|
|
|
|
event.preventDefault();
|
|
|
|
|
loginService.logOut(function () {
|
|
|
|
|
$state.go('login');
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|