disable all module routes if not permission
This commit is contained in:
parent
5c8e997738
commit
563c49b785
|
@ -11,8 +11,8 @@ function loader(moduleName, validations) {
|
|||
return load;
|
||||
}
|
||||
|
||||
config.$inject = ['$stateProvider', '$urlRouterProvider', 'aclServiceProvider'];
|
||||
function config($stateProvider, $urlRouterProvider, aclServiceProvider) {
|
||||
config.$inject = ['$stateProvider', '$urlRouterProvider', 'aclServiceProvider', 'modulesFactoryProvider'];
|
||||
function config($stateProvider, $urlRouterProvider, aclServiceProvider, modulesFactory) {
|
||||
splitingRegister.registerGraph(deps);
|
||||
let aclService = aclServiceProvider.$get();
|
||||
|
||||
|
@ -41,21 +41,28 @@ function config($stateProvider, $urlRouterProvider, aclServiceProvider) {
|
|||
let fileRoutes = window.routes[file].routes;
|
||||
let moduleName = window.routes[file].module;
|
||||
let validations = window.routes[file].validations || false;
|
||||
fileRoutes.forEach(function(route) {
|
||||
if (aclService.routeHasPermission(route)) {
|
||||
$stateProvider.state(route.state, {
|
||||
url: route.url,
|
||||
abstract: route.abstract || false,
|
||||
template: `<${route.component} ${getParams(route)}></${route.component}>`,
|
||||
resolve: {
|
||||
loader: loader(moduleName, validations)
|
||||
},
|
||||
data: {
|
||||
routes: fileRoutes
|
||||
}
|
||||
});
|
||||
let mainModule = modulesFactory.$get().getMainRoute(fileRoutes);
|
||||
if (mainModule) {
|
||||
let count = fileRoutes.length;
|
||||
for (let i = 0; i < count; i++) {
|
||||
let route = fileRoutes[i];
|
||||
if (aclService.routeHasPermission(route)) {
|
||||
$stateProvider.state(route.state, {
|
||||
url: route.url,
|
||||
abstract: route.abstract || false,
|
||||
template: `<${route.component} ${getParams(route)}></${route.component}>`,
|
||||
resolve: {
|
||||
loader: loader(moduleName, validations)
|
||||
},
|
||||
data: {
|
||||
routes: fileRoutes
|
||||
}
|
||||
});
|
||||
} else if (route.state === mainModule.state) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
ngModule.config(config);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import ngModule from './module';
|
||||
|
||||
function modulesFactory(aclService) {
|
||||
function _getMainRoute(routeCollection) {
|
||||
function getMainRoute(routeCollection) {
|
||||
let cant = routeCollection.length;
|
||||
for (let i = 0; i < cant; i++) {
|
||||
if (!routeCollection[i].abstract) {
|
||||
|
@ -18,7 +18,7 @@ function modulesFactory(aclService) {
|
|||
name: routes[file].name || routes[file].module,
|
||||
icon: routes[file].icon || ''
|
||||
};
|
||||
let mainRoute = _getMainRoute(window.routes[file].routes);
|
||||
let mainRoute = getMainRoute(window.routes[file].routes);
|
||||
if (mainRoute && aclService.routeHasPermission(mainRoute)) {
|
||||
card.route = mainRoute;
|
||||
modules.push(card);
|
||||
|
@ -28,7 +28,8 @@ function modulesFactory(aclService) {
|
|||
}
|
||||
|
||||
return {
|
||||
getModules: getModules
|
||||
getModules: getModules,
|
||||
getMainRoute: getMainRoute
|
||||
};
|
||||
}
|
||||
modulesFactory.$inject = ['aclService'];
|
||||
|
|
Loading…
Reference in New Issue