1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-10-19 07:35:48 +02:00
bitwarden-browser/src/popup/app/config.js

133 lines
5.3 KiB
JavaScript
Raw Normal View History

2016-09-03 06:03:13 +02:00
angular
.module('bit')
.config(function ($stateProvider, $urlRouterProvider, $httpProvider, jwtInterceptorProvider, toastrConfig) {
2016-09-03 06:03:13 +02:00
jwtInterceptorProvider.urlParam = 'access_token';
jwtInterceptorProvider.tokenGetter = /*@ngInject*/ function (config, appSettings, tokenService) {
if (config.url.indexOf(appSettings.apiUri) === 0) {
tokenService.getToken(function (token) {
return token;
});
}
};
angular.extend(toastrConfig, {
closeButton: true,
progressBar: true,
showMethod: 'slideDown',
positionClass: 'toast-bottom-center'
});
2016-09-03 06:03:13 +02:00
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');
2016-09-03 06:03:13 +02:00
});
$stateProvider
.state('login', {
url: '/login',
2016-09-03 06:03:13 +02:00
controller: 'accountsLoginController',
templateUrl: 'app/accounts/views/accountsLogin.html',
data: { authorize: false },
params: { animation: null }
2016-09-09 04:37:29 +02:00
})
.state('twoFactor', {
url: '/two-factor',
2016-09-09 04:37:29 +02:00
controller: 'accountsLoginController',
templateUrl: 'app/accounts/views/accountsLoginTwoFactor.html',
data: { authorize: false },
params: { animation: null }
2016-09-03 06:03:13 +02:00
})
.state('tabs', {
url: '/tab',
2016-09-03 06:03:13 +02:00
abstract: true,
templateUrl: 'app/global/tabs.html',
data: { authorize: true },
params: { animation: null }
2016-09-03 06:03:13 +02:00
})
.state('tabs.current', {
url: '/current',
templateUrl: 'app/current/views/current.html',
controller: 'currentController'
2016-09-03 06:03:13 +02:00
})
.state('tabs.vault', {
url: '/vault',
templateUrl: 'app/vault/views/vault.html',
controller: 'vaultController',
2016-09-13 06:14:49 +02:00
params: { scrollY: 0, searchText: null }
2016-09-03 06:03:13 +02:00
})
.state('tabs.settings', {
url: '/settings',
templateUrl: 'app/settings/views/settings.html',
controller: 'settingsController'
2016-09-03 06:03:13 +02:00
})
.state('tabs.tools', {
url: '/tools',
templateUrl: 'app/tools/views/tools.html',
controller: 'toolsController'
})
2016-09-09 04:37:29 +02:00
2016-09-09 04:23:56 +02:00
.state('viewSite', {
url: '/view-site?siteId',
templateUrl: 'app/vault/views/vaultViewSite.html',
2016-09-09 04:23:56 +02:00
controller: 'vaultViewSiteController',
data: { authorize: true },
2016-09-13 06:14:49 +02:00
params: { animation: null, returnScrollY: 0, returnSearchText: null }
2016-09-09 04:37:29 +02:00
})
.state('addSite', {
url: '/add-site',
templateUrl: 'app/vault/views/vaultAddSite.html',
2016-09-09 04:37:29 +02:00
controller: 'vaultAddSiteController',
data: { authorize: true },
2016-09-20 04:24:55 +02:00
params: { animation: null, returnScrollY: 0, returnSearchText: null, name: null, uri: null, site: null, fromCurrent: false }
2016-09-09 04:37:29 +02:00
})
.state('editSite', {
url: '/edit-site?siteId',
templateUrl: 'app/vault/views/vaultEditSite.html',
2016-09-09 04:37:29 +02:00
controller: 'vaultEditSiteController',
data: { authorize: true },
2016-09-20 04:24:55 +02:00
params: { animation: null, fromView: true, returnScrollY: 0, returnSearchText: null, site: null }
})
.state('passwordGenerator', {
url: '/password-generator',
templateUrl: 'app/tools/views/toolsPasswordGenerator.html',
controller: 'toolsPasswordGeneratorController',
data: { authorize: true },
params: { animation: null, addState: null, editState: null }
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');
});
}
});
});
});
});