跳到主要内容

用户加入多角色时的规则是怎么样的


在企业经营活动中,一个员工可能会同时身兼多个角色, 不同角色间对同一个表可能有不同的权限配置,那么如果冲突时,如何判定角色权限呢。

配置视图权限的三个层级

我们先来看下角色配置权限的3个层级:

  • L1:视图下可操作权限

    配置用户在此视图下,能否看到记录,能否编辑记录,能否删除记录。

  • L2:权限的记录范围

    如果可见,可见的记录范围是哪些:全部的?还是加入的。如果可编辑,可编辑的范围是全部记录,还是只能编辑拥有的记录。

  • L3:字段的范围

    字段的范围(新增时、查看时、编辑时的可操作范围),系统按钮操作如解码、分享、导入、打印等系统操作和自定义动作也属于此层级。

多角色合并规则

什么情况下才需要关注多角色

多角色合并是指,当一个人加入多个角色,至少有两个角色都对同一个表进行了配置,那么这个表下的每个视图下的权限都会进行合并,最终得到一个新的最大的权限。

如果加入的多个角色中,分别配置了不同表的权限,那么只需要关注单个角色权限即可。举个简单的例子: 角色1只配置了表A的权限,角色2只配者了表B的权限,如果同时加入角色1,角色2,那么表A的权限就是角色1的配置。

合并规则

表数据权限实际是基于视图的,配置用户在某个视图中有哪些操作权限。在多角色合并时,需要先根据视图列出每个层级的权限,然后相同层级进行合并,最终确定三个层级的权限。

示例1

角色1的配置图:

角色2的配置图:

合并后的权限:

两个角色都配置了同一个表的权限,存在权限合并的情况。

如下表,我们将视图的权限按三个层级梳理,表中相同层级的权限进行上下合并取并集(取最大的权限),得到用户在此视图下最后的权限。

下载权限合并表

示例2

角色1的配置图:

角色2的配置图:

合并后的权限:

两个角色都配置了同一个表的权限,存在权限合并的情况。

如下表,我们将视图的权限按三个层级梳理,表中相同层级的权限进行上下合并取并集(取最大的权限),得到用户在此视图下最后的权限。

解释:

角色1中视图B的权限: 角色1中视图A和视图B的L2、L3权限为啥不一样呢。虽然角色1中L2配置了可编辑全部记录,L3配置了可编辑所有字段, 但是L1中视图B是不可编辑的,所以,应用到视图B的权限时,是不可编辑任何记录,不可编辑任何字段。