Skip to main content

角色管理

角色管理中的功能有新增,删除,编辑角色以及权限配置。系统会默认生成四种角色,新增角色时会需要从默认角色(除了超级管理员,因为只能有一个超管角色)中选一种角色类型,表示新增角色的初始配置。

默认的四种角色不可删除,其中超级管理员是不可编辑的。

之前已经初始化过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,即资源管理