角色与权限

角色与权限板块用于编辑角色权限,支持对角色进行菜单权限系统数据源权限桌面端路由权限AI员工权限的管理,是鉴权体系中重要的一环。

默认角色

系统默认配置了 AdminMember 两个角色:

角色说明
Admin管理员角色,拥有多数系统和菜单权限,是系统最高权限角色
Member默认角色,新建账号若未进行角色配置,默认继承该角色权限

用户可以在一众角色中,选中其中一个角色设为默认角色。后续新建的账号若未指定角色,将自动继承默认角色的权限配置。

功能入口

  1. 点击系统左下角的设置图标,进入系统配置
  2. 在左侧导航中选择用户和权限 > 角色和权限

角色和权限菜单页入口

新建角色

  1. 点击页面中的新建角色按钮。
  2. 填写角色名称角色标识(标识默认随机生成,也可手动指定)。

默认角色勾选框

  • 默认角色初始为 Member 角色。
  • 勾选后,该角色即成为系统默认角色,新建账号若未配置角色,默认继承该角色权限。
  • 同一时间仅能存在一个默认角色,勾选新角色会自动取消旧默认角色。

权限配置

选中角色列表中的一个角色后,可在右侧对该角色进行以下四个维度的权限配置:

系统管理

配置权限下有四个选项:

选项说明适用场景
允许配置界面对应左下角的「界面配置」按钮,选中后可在前端直接进行整个系统的页面增删改,鼠标悬停在菜单上会出现编辑操作仅在特殊情况使用,如"添加插件后,对应添加菜单"等场景
允许安装、激活、禁用插件角色左下角系统配置界面中才会出现「插件管理器」菜单,可进入插件市场进行插件启停需要让角色自行管理插件的场景
允许配置插件允许对系统配置菜单中的功能项进行管理注意:非 Admin 角色即便开放相关功能,也可能无实际操作权限,若碰到 "no permissions" 报错属于正常现象
允许清除缓存,重启应用点击个人信息部分,可通过前端快速进行缓存清理和应用重启一般不开放给 Admin 之外的用户

界面配置示意

插件配置示意

清除缓存与重启

数据源

进入角色配置后,右侧的权限 > 数据源区域会展示两个固定数据源:

数据源用途说明
主数据源系统数据库存放系统内部信息(如用户、角色、配置等),谨慎操作
YiAsk用户外接的业务数据源可在此对业务模型进行行列权限控制

主数据源

点击主数据源右侧的配置按钮,会展示两个子选项:

  • 通用操作权限
  • 数据表操作权限

进入数据表操作权限页面后,数据表默认遵循通用操作权限的设定。如需放开或收束权限,可以在对应功能表进行单独配置。

示例:人人都可以通过 Nora 进行定时任务管理,但定时任务创建后,是否允许编辑任务、删除任务,可以通过打开「用户数据预警」数据表的编辑权限进行控制。

主数据源数据表权限配置

YiAsk 数据源

YiAsk 数据源用于对业务模型进行权限控制,该数据源仅提供查看权限。我们建立的模型均在此页面进行初步权限编辑。

YiAsk 数据源

配置流程:

  1. 选中对应的 Schema,点击操作列的配置按钮。
  2. 进入权限编辑界面后,点击数据范围标签。

Schema 权限编辑入口

系统默认会提供一些初始的数据范围对象,这些默认对象不可直接使用,直接删除即可。

  1. 点击添加数据范围按钮,创建新的数据范围来进行权限控制。

配置示例:以订单表为例,创建了「淘宝渠道」角色后,需要控制权限仅允许该角色查看渠道为"淘宝"的数据:

数据范围配置示例

复杂权限配置:通过添加条件和条件分组,可以实现更复杂的逻辑组合:

复杂条件与条件分组

关于行权限的更多操作符和语法说明,请参阅《权限管理概览》中的行权限部分。

桌面端路由

控制左侧上半部分的菜单及其子菜单的可见性权限。

  • 勾选对应菜单项,角色即可在桌面端看到该菜单入口。
  • 取消勾选则隐藏该菜单,但不影响底层数据权限。

桌面端路由配置

AI员工

控制 AI 员工对角色是否可见,以及是否默认使用某一个 AI 员工。

  • 可见性:勾选的 AI 员工对该角色下的用户可见。
  • 默认员工:可指定一个默认 AI 员工,用户登录后默认使用该员工。

初始最重要的 AI 员工是 Nora,建议确保核心角色均对其可见。

角色下的用户管理

在角色和权限页面中,切换至用户标签页,可以管理该角色下的用户:

  • 添加用户:将现有用户关联到当前角色。
  • 移除用户:解除用户与当前角色的关联。

此操作与「用户管理」页面中的角色管理功能互通,在任一侧配置后均会互相生效。区别在于入口视角不同:此处以角色为中心管理用户,用户页面以用户为中心管理角色。

配置建议

  1. 先梳理角色模型(按业务职能拆分),再批量创建角色。
  2. 优先在实体 Schema 上配置行权限,利用自动传播能力减少重复配置。
  3. 优先使用用户字段变量模板({{$user.字段名}}),减少为单个用户单独写死权限。
  4. 配置完成后,结合真实用户验证最终可见数据是否符合预期。
  5. 非 Admin 角色建议谨慎开放系统管理权限,遵循最小权限原则。