71 lines
2.0 KiB
JavaScript
71 lines
2.0 KiB
JavaScript
|
angular.module('myapp', ['ngCookies', 'ngRoute'])
|
||
|
.config(['$routeProvider', '$locationProvider', '$httpProvider', function ($routeProvider, $locationProvider, $httpProvider) {
|
||
|
var access = routingConfig.accessLevels;
|
||
|
|
||
|
$routeProvider.when('/', {
|
||
|
templateUrl: 'home',
|
||
|
controller: 'HomeCtrl',
|
||
|
access: access.user
|
||
|
});
|
||
|
$routeProvider.when('/login', {
|
||
|
templateUrl: 'login',
|
||
|
controller: 'LoginCtrl',
|
||
|
access: access.anon
|
||
|
});
|
||
|
$routeProvider.when('/register', {
|
||
|
templateUrl: 'register',
|
||
|
controller: 'RegisterCtrl',
|
||
|
access: access.anon
|
||
|
});
|
||
|
$routeProvider.when('/private', {
|
||
|
templateUrl: 'private',
|
||
|
controller: 'PrivateCtrl',
|
||
|
access: access.user
|
||
|
});
|
||
|
$routeProvider.when('/admin', {
|
||
|
templateUrl: 'admin',
|
||
|
controller: 'AdminCtrl',
|
||
|
access: access.admin
|
||
|
});
|
||
|
$routeProvider.when('/404', {
|
||
|
templateUrl: '404',
|
||
|
access: access.public
|
||
|
});
|
||
|
$routeProvider.otherwise({
|
||
|
redirectTo:'/404'
|
||
|
});
|
||
|
|
||
|
$locationProvider.html5Mode(true);
|
||
|
|
||
|
var interceptor = ['$location', '$q', function($location, $q) {
|
||
|
function success(response) {
|
||
|
return response;
|
||
|
}
|
||
|
|
||
|
function error(response) {
|
||
|
|
||
|
if(response.status === 401) {
|
||
|
$location.path('/login');
|
||
|
return $q.reject(response);
|
||
|
}
|
||
|
else {
|
||
|
return $q.reject(response);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return function(promise) {
|
||
|
return promise.then(success, error);
|
||
|
}
|
||
|
}];
|
||
|
|
||
|
$httpProvider.responseInterceptors.push(interceptor);
|
||
|
}])
|
||
|
.run(['$rootScope', '$location', 'Auth', function ($rootScope, $location, Auth) {
|
||
|
$rootScope.$on("$routeChangeStart", function (event, next, current) {
|
||
|
$rootScope.error = null;
|
||
|
if (!Auth.authorize(next.access)) {
|
||
|
if(Auth.isLoggedIn()) $location.path('/');
|
||
|
else $location.path('/login');
|
||
|
}
|
||
|
});
|
||
|
}]);
|