不同于一般系统,企业管理系统对权限的管控更加细致、严谨。角色(权限)贯穿整个 RB 系统,例如能够读取(查看)哪些数据、能够编辑(修改)哪些数据、能够删除哪些数据等等。RB 提供 RBAC 权限模型(基于角色的权限访问控制)。此权限模型是兼具简单易用、性能与安全性并存的综合性解决方案。
权限管控有严格的校验策略。因此,如果某些操作(按钮)因权限未被显示出来,即使通过 Hacker 手段发送请求(如删除)给服务器也无法通过服务端校验。同时,系统也会根据权限自动过滤那些无权查看的记录和无权使用的操作(例如删除按钮)
权限模型基于以下 3 个关键对象:
其中,角色负责权限定义,是一组权限的集合。部门负责定义权限的层级(如允许读取/查看本部门数据、允许修改本人数据等)。最终,用户会被赋予某种角色和部门。您可以根据需要添加不同的角色并为其配置权限,然后将角色应用到不同的用户。
如上图所示:
在 RB 中可以对业务记录进行 6 种操作:
其中除了“新建”没有操作层级外,其他均可以配置操作层级,形成“交叉式”权限管控。如“编辑本人的客户记录”,“读取全部客户记录”等。同时您需要注意权限类型之间的基本依赖,例如只给予了“编辑”但没有给予“读取”权限,因为无法看到记录,所以也无法进行编辑操作(通过 OpenAPI 操作的除外)。
明细实体没有独立的权限控制,其跟随主实体权限。明细(实体)记录作为主记录的组成部分,其自身的新增、编辑、删除操作,对主记录而言都是“编辑”。因此,当主记录具备编辑权限时,明细实体会具备新增、编辑、删除权限。
在 RB 中定义了 5 种权限层级:
操作层级通过业务记录的“所属用户”和“所属部门”字段进行控制,在 RB 中每条业务记录分别有(且仅有)一个“所属用户”和“所属部门”字段,用于确定记录的所属权。
本人/本部门 是一个相对概念,例如 A 记录所属用户是张三,则对于张三就是本人,而李四则不然
您可以在上文中介绍的实体权限基础上配置自定义权限(条件),例如可以查看“本部门”的客户,但只能查看客户地址是“北京”的,即只能查看 本部门且地址是北京的客户。您可以根据自身需求灵活配置。
即“实体权限”。用户可以通过“分配”将记录转移给其他用户,所属用户的转移即表示记录所属权的转移。也通过“共享”与多个用户共享记录,保持所属用户不变化。
另请参见 分配与共享
通过分配可以将记录所有权转移给另一个用户(所属部门也会自动变更),请注意同一时刻同一记录所属用户只有一个。
通过共享可以在不转移所属用户的前提下,使其他用户也有读取/编辑记录的权限。系统支持将一条记录共享给多个用户,共享后也可以随时收回/取消共享,具备高度的灵活性。
? 被共享人首先需要具备对实体的读取/编辑权限(例如可以是“本人”),不能是“无”权限,否则即使共享也无效
“扩展权限”中的权限项通常依照字面意思理解即可,同时注意“前置条件”说明,例如“批量修改”仅能修改当前用户权限内允许修改的记录,如果尝试修改无修改权限的业务记录,会被系统自动忽略且不会提示错误。
以下对不部分扩展权限进行说明:
在动态、项目、文件功能中,各自有其独立的权限控制体系,因此不(完全)适用于本文上述权限模型。
初配置权限时,尽可能不要给太高的权限,够用即可,不够再加。若一开始就给高权限,后期就很难再减少(减少可能带来使用上的问题)。