用户加入多角色时的规则是怎么样的
在企业经营活动中,一个员工可能会同时身兼多个角色, 不同角色间对同一个表可能有不同的权限配置,那么如果冲突时,如何判定角色权限呢。
配置视图权限的三个层级
我们先来看下角色配置权限的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的权限时,是不可编辑任何记录,不可编辑任何字段。