【发布时间】:2019-07-10 19:17:59
【问题描述】:
我在 angularjs 的模糊管理模板中使用 RBAC。我有以下场景 - 假设我有名为“Utilities”的主侧菜单,其中包括 3 个子菜单。也就是说,当用户点击 Utilities 时,他会看到 3 个子菜单 - 1) EDI Mapper 2) 库存映射器 3) 发票映射器
我的 utilities.module.js 是 -
(function() {
'use strict';
angular.module('BlurAdmin.pages.utilities', [
'ui.select',
'ngSanitize',
'BlurAdmin.pages.utilities.ediMapper',
'BlurAdmin.pages.utilities.inventoryMapper',
'BlurAdmin.pages.utilities.invoiceMapper',
])
.config(routeConfig);
/** @ngInject */
function routeConfig($stateProvider) {
$stateProvider
.state('main.utilities', {
url: '/utilities',
template: '<ui-view autoscroll="true" autoscroll-body-top></ui-view>',
abstract: true,
title: 'Utilities',
sidebarMeta: {
icon: 'ion-hammer',
order: 100,
},
authenticate: true,
params: {
authRoles: ['admin', 'inventory-user']
}
});
}
})();
其中,
authRoles是 管理员和库存用户。即 Utilities 菜单仅对 admin & inventory-user 可见,而对任何其他用户不可见。我想为子菜单实现相同的功能,我为子菜单实现了相同的逻辑 - Inventory Mapper 如下 -
inventoryMapper.module.js -
(function() {
'use strict';
angular.module('BlurAdmin.pages.utilities.inventoryMapper', ['angularFileUpload'])
.config(routeConfig);
/** @ngInject */
function routeConfig($stateProvider) {
$stateProvider
.state('main.utilities.inventoryMapper', {
url: '/inventoryMapper',
templateUrl: 'app/pages/utilities/inventoryMapper/inventoryMapper.html',
controller: 'inventoryMapperCtrl as vm',
title: 'Inventory Mapper',
sidebarMeta: {
icon: 'ion-ios-pulse',
order: 100,
},
authenticate: true,
params: {
authRoles: ['admin', 'inventory-user']
}
});
}
})();
invoiceMapper.module.js -
(function() {
'use strict';
angular.module('BlurAdmin.pages.utilities.invoiceMapper', ['angularFileUpload'])
.config(routeConfig);
/** @ngInject */
function routeConfig($stateProvider) {
$stateProvider
.state('main.utilities.invoiceMapper', {
url: '/invoiceMapper',
templateUrl: 'app/pages/utilities/invoiceMapper/invoiceMapper.html',
controller: 'invoiceMapperCtrl as vm',
title: 'Invoice Mapper',
sidebarMeta: {
icon: 'ion-ios-pulse',
order: 100,
},
authenticate: true,
params: {
authRoles: ['admin', 'inventory-user']
}
});
}
})();
与 authRoles: ['admin', 'edi-user'] 的 EDIMapper.module.js 类似。
现在,问题是当我使用 inventory-user 登录时,他应该只能看到 Utilities -> Inventory Mapper 而不是实用程序下的其他两个子菜单 EDI Mapper 和 Invoice Mapper,但他看到了所有这些。
但目前,所有用户都可以看到
Utilities下的所有子菜单,并希望将其限制在他们的子菜单中。其他子菜单不应访问/可见。
发票用户登录的预期输出是 -
【问题讨论】:
标签: angularjs blur-admin