mirror of
				https://github.com/mmumshad/ansible-playable.git
				synced 2025-03-09 23:38:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			844 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			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');
 | |
|         });
 | |
|     }
 | |
|   });
 | |
| }
 |