角色管理
角色管理中的功能有新增,删除,编辑角色以及权限配置。系统会默认生成四种角色,新增角色时会需要从默认角色(除了超级管理员,因为只能有一个超管角色)中选一种角色类型,表示新增角色的初始配置。
默认的四种角色不可删除,其中超级管理员是不可编辑的。
之前已经初始化过RoleStore,这里只需要在页面中加入该组件:
import { systemStore, systemStoreNames, Role } from 'mlog-service';
<Role store={systemStore.get(systemStoreNames.roleStore)} />
筛选展示的角色
可通过设置excludeRoleIds,过滤掉一些不需要展示的角色,系统中所有选择角色的地方会不展示过滤掉的角色,如果没有设置,则展示所有角色。该设置是在初始化RoleStore时进行
systemStore.set(systemStoreNames.roleStore, new RoleStore({
excludeRoleIds: ['anonymous'], // 不展示游客这个角色
}));
单一角色
默认情况下,一个用户是可配置多个角色的,也可通过配置项singleRole,设置一个用户只能配置一个角色。
systemStore.set(systemStoreNames.roleStore, new RoleStore({
singleRole: true, // 用户是否只有单一角色,默认为false,即一个用户会有多个角色
}));
角色权限设置
角色管理中是默认展示权限配置的,角色可进行的权限配置的资源类型有如下这些,和用户权限类似,角色权限也是通过设置allowedResourceTypes参数控制展现哪些:
- TABLE(业务表)
- API(接口)
- RESOURCE(资源)
- DATA_TABLE(数据表)
- 自定义资源类型
- 使用外部资源数据,类型命名规则为`EX_${string}`
systemStore.set(systemStoreNames.roleStore, new RoleStore({
allowedResourceTypes: ['RESOURCE', 'TABLE', 'API', 'AREA', 'EX_DEVICE'], // 允许配置的资源类型,排列的顺序就是页面上tab的顺序
}));
注意:如果只展示第一和第二两种权限配置,则不需要初始化ResourceStore,如果涉及到展示后面几种,则需要在初始化roleStore前初始化ResourceStore,即资源管理
No Comments