角色权限

概述

不同于一般系统,企业管理系统对权限的管控更加细致、严谨。角色(权限)贯穿整个 RB 系统,例如能够读取(查看)哪些数据、能够编辑(修改)哪些数据、能够删除哪些数据等等。RB 提供 RBAC 权限模型(基于角色的权限访问控制)。此权限模型是兼具简单易用、性能与安全性并存的综合性解决方案。

权限管控有严格的校验策略。因此,如果某些操作(按钮)因权限未被显示出来,即使通过 Hacker 手段发送请求(如删除)给服务器也无法通过服务端校验。同时,系统也会根据权限自动过滤那些无权查看的记录和无权使用的操作(例如删除按钮)

权限模型基于以下 3 个关键对象:

  • 用户
  • 部门
  • 角色

其中,角色负责权限定义,是一组权限的集合。部门负责定义权限的层级(如允许读取/查看本部门数据、允许修改本人数据等)。最终,用户会被赋予某种角色和部门。您可以根据需要添加不同的角色并为其配置权限,然后将角色应用到不同的用户。

权限定义

操作类型

在 RB 中可以对业务记录进行以下 6 种操作:

  • 新建:添加新记录
  • 读取:查看记录
  • 编辑:修改记录
  • 删除:删除记录
  • 分配:修改记录的所属人(所属部门)
  • 共享:将记录共享给他人供查看或/和编辑

其中除了“新建”没有操作层级外,其他均可以配置操作层级,形成“交叉式”权限管控。如“编辑本人的客户记录”,“读取全部客户记录”等。同时您需要注意权限类型之间的基本依赖,例如只给予了“编辑”但没有给予“读取”权限,因为无法看到记录,所以也无法进行编辑操作(通过 OpenAPI 操作的除外)。

明细实体没有独立的权限控制,其跟随主实体权限。明细(实体)记录作为主记录的组成部分,其自身的新增、编辑、删除操作,对主记录而言都是“编辑”。因此,当主记录具备编辑权限时,明细实体会具备新增、编辑、删除权限。

操作层级

在 RB 中定义了 5 个权限层级:

  • 无权限:无权限
  • 本人:所属用户是自己(即当前登录用户自己)
  • 本部门:所属部门是自己的所在部门
  • 本部门及子部门:本部门以及本部门以下的所有子级部门
  • 全部:全部

操作层级通过业务记录的“所属用户”和“所属部门”字段进行控制,在 RB 中每条业务记录分别有(且仅有)一个“所属用户”和“所属部门”字段,用于确定记录的所属权。

自定义权限

您可以在上文中介绍的实体权限基础上配置自定义权限(条件),例如可以查看“本部门”的客户,但只能查看客户地址是“北京”的,即只能查看 本部门且地址是北京的客户。您可以根据自身需求灵活配置。

数据权限

业务记录权限

即“实体权限”。用户可以通过“分配”将记录转移给其他用户,所属用户的转移即表示记录所属权的转移。也通过“共享”与多个用户共享记录,保持所属用户不变化。

另请参见 分配与共享

何为分配

通过分配可以将记录所有权转移给另一个用户(所属部门也会自动变更),请注意同一时刻同一记录所属用户只有一个。

何为共享

通过共享可以在不转移所属用户的前提下,使其他用户也有读取/编辑记录的权限。系统支持将一条记录共享给多个用户,共享后也可以随时收回/取消共享,具备高度的灵活性。

扩展权限

“扩展权限”中的权限项通常依照字面意思理解即可,同时注意“前置条件”说明,例如“批量修改”仅能修改当前用户权限内允许修改的记录,如果尝试修改无修改权限的业务记录,会被系统自动忽略且不会提示错误。

扩展权限说明

以下对不好理解的扩展权限进行说明。

  • 允许自定义图表:此权限项包括了图表以及 首页仪表盘 的自定义
  • 允许查看明文:在字段中启用了 信息脱敏 后,拥有此权限即可查看明文
  • 允许撤销审批:管理员用户可 撤销 审批通过的记录,拥有此权限也可撤销
  • 开启部门用户隔离:在使用用户选择组件选择用户(或部门)时,若启用此权限项则仅可看到自己所在部门及子部门的用户(和部门)数据

其他权限

在动态、项目、文件功能中,各自有其独立的权限控制体系,因此不(完全)适用于本文上述权限模型。

常见问题

如何进行灵活的权限控制?

  1. 首先以用户、部门标准层级权限作为基础
  2. 配合自定义权限实现条件控制
  3. 配合共享、分配实现灵活控制(共享、分配可通过 触发器 实现支持自动化)
该文档内容对您是否有帮助?没有
如有任何疑问,请与我们的 社区QQ 群 联系
Updated 2024-03-06
目录