角色权限

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

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

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

  • 用户
  • 部门
  • 角色

其中,角色负责权限定义,是一组权限的集合。部门负责定义权限的层级(如允许读取/查看本部门数据、允许修改本人数据等)。最终,用户会被赋予某种角色和部门。

您可以根据需要添加不同的角色并为其配置权限,然后将角色应用到不同的用户

权限定义

操作类型

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

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

其中除了“新建”没有操作层级外,其他均可以配置操作层级,形成“交叉式”权限管控。如“编辑本人的客户记录”,“读取全部客户记录”等。

同时您需要注意权限类型之间的基本依赖,例如只给予了“编辑”但没有给予“读取”权限,因为无法看到记录,自然也无法进行编辑操作(通过 OpenAPI 操作的除外)。

操作层级

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

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

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

自定义权限

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

数据权限

业务记录权限

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

另请参见 分配与共享

分配

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

共享

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

扩展权限

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

其他权限

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

常见问题

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