1
0
Fork 0
mirror of https://github.com/mmumshad/ansible-playable.git synced 2025-02-13 11:11:55 +00:00
ansible-playable/client/components/auth/router.decorator.js
Mumshad Mannambeth c92f737237 Initial Commit
2017-06-07 13:36:45 -04:00

38 lines
844 B
JavaScript

'use strict';
export function routerDecorator($rootScope, $state, Auth) {
'ngInject';
// Redirect to login if route requires auth and the user is not logged in, or doesn't have required role
$rootScope.$on('$stateChangeStart', function(event, next) {
if(!next.authenticate) {
return;
}
if(typeof next.authenticate === 'string') {
Auth.hasRole(next.authenticate)
.then(has => {
if(has) {
return;
}
event.preventDefault();
return Auth.isLoggedIn()
.then(is => {
$state.go(is ? 'main' : 'login');
});
});
} else {
Auth.isLoggedIn()
.then(is => {
if(is) {
return;
}
event.preventDefault();
$state.go('login');
});
}
});
}