功能权限,多的是你不知道的事(上)
有一天,刚上手苍穹的“权不董”使用系统做直接授权时,去掉了用户某个表单的删除权,但发现被撤权后的用户还能删除表单的数据,百思不得其解,于是请教经常搞权限的“权半董”。
这时,“权都董”大神正好路过,听到不董的抱怨,不禁发出感叹。
1 权限分类
首先,快速了解一下权限的分类。
从狭义角度而言,权限可分为功能权限、字段权限和数据规则。以下图的采购订单表单为例:
采购订单表示例
一个用户能否查看、新增、修改这个采购订单,由功能权限进行控制。
一个用户能否查看订单日期这一列,或者能否在表单详情页修改订单日期,由字段权限控制,也称为列权限。
一个用户能否查看列表上某些行的数据,例如【采购组织】是“A公司”的, 或者【结算币别】是“人民币”的,由数据规则控制,也称为行权限。
注意:“数据规则”,一般不叫“数据权限”,因为“数据权限”其实是一个更广的概念,它可以包括“字段权限”、“数据规则”、“特殊数据权限”,甚至“功能权限的隔离维度”。
由于功能权限内容较多,我们分两次来讨论,本次我们只讨论功能权限的要素和授权功能,下期讨论验权逻辑。
2 功能权限的要素
功能权限的要素可以分为用户、应用、表单、权限项、隔离维度。
1. 用户
系统需要知道对哪个用户进行授权和验权。
2. 应用
苍穹支持同一业务对象发布到不同应用下,例如:出差申请单在人人报账、费用查看、费用核算这三个应用同时发布,但是从业务应用角度,需要分别授权。
(关于这一点,可以回看历史文章《少侠,你遗漏了一项配置--“权限发布应用”》及其同名“续集”,内有详细解释)
如下图,应用有一个和权限相关的属性“全员应用”。如果一个应用是全员应用,那么在其下打开的表单都验权通过。全员应用下的表单自然也就不需要授权。
全员应用属性示例
3. 表单
有时也叫“业务对象”。如下图,在“页面”页签下,除了红圈的轻量卡片,其他都是可以用于控权的表单。
表单示例
再如下两图,“布局”页签和“其他”页签下的表单都不直接控权,而是根据其他方式来验权,下面只讲一下“布局”表单验权的特点。
”布局“页签下的表单示例
”布局“页签下的表单示例
布局表单验权时按实体表单验权。一个实体表单可以创建任意多个布局表单,就像一个人(实体)可以穿上不同的衣服(布局),但大楼保安判断一个人是否有权进入某栋楼,需要看这个人(实体)是谁,而不是看他穿的衣服(布局)。
如下图,“出差申请单(核算)” 是一个布局表单,点击“视图”按钮后,可以看到页面继承关系视图中, “出差申请单”才是真正的实体,验权是以“实体表单”来控制,而不是“布局表单”。
“出差申请单(核算)”的页面继承关系视图
接下来,再了解一下表单元数据上的一些权限配置:“权限控制”配置项中有一个 “控制功能权限”的开关,如果关闭该开关,表明该表单不需要进行权限控制,那么任何人皆可访问该表单。
采购订单表示例
再如下图,点击“操作权限控制”,可以查看表单绑定了哪些权限项。
操作权限控制示例
一个表单如果需要进行权限控制,需要满足两个条件:
(1)打开“控制功能权限”开关;
(2)至少绑定一个权限项。
4. 权限项
权限项为一个表单上授权或验权的最小单位,例如查询、新增、查看、删除、提交、审核等。
我们称应用、表单、权限项3个要素的组合为“功能权限项”。
如下图,展示了按钮和权限的关系,他们是通过操作关联起来的!
按钮和权限的关系示例
首先“删除”按钮绑定了“delete操作”,“delete操作”绑定了“删除权限项”。点击“删除”按钮后,系统会自动触发验删除权,是因为系统发现存在 “按钮-操作-权限项”这个绑定关系。
如果不存在这个关系,验权情况就变了。例如:
1)“删除”按钮不绑操作,或“删除”按钮虽然绑了操作,但操作不绑权限项,那么此时点击“删除”按钮,都不会触发系统的自动验权,相当于有权。
2)虽然“删除”按钮绑定了delete操作,但delete操作绑定了“提交权”,那么点击“删除”按钮就会验当前用户是否有该表单的提交权,而不是用户想当然的“删除权”(这种情况可能为开发者有意为之,或者是误配置。一般来说,权限项会和按钮名称相似或相同)。
5. 隔离维度
下图为【企业绩效云】→【基础资料】→【体系功能权限】→【用户直接授权】的界面,和【系统服务云】→【基础服务】→【权限管理】→【用户授权】很相似。但此处授权分配的不是组织的范围,而是体系的范围。
用户直接授权界面示例
关于隔离维度是如何影响验权的,我们在下集谈验权时再详细展开。
3 授权功能
1. 用户直接授权
用户直接授权将上述的5个要素直接组合,如下图所示:
用户直接授权示例
2. 通用角色
对应应用、表单、权限项3个要素的组合,即功能权限项的集合,如下图所示:
通用角色示例
3. 用户分配通用角色
用户+隔离维度+通用角色(功能权限项的集合)的组合,集齐5要素,如下图所示:
用户分配通用角色示例
4. 通用角色分配组织用户
通用角色(功能权限项的集合)+隔离维度+用户的组合,集齐5要素,如下图所示:
通用角色分配组织用户示例
5. 通用角色分配用户组织
通用角色(功能权限项的集合)+用户+隔离维度的组合,集齐5要素,如下图所示:
通用角色分配用户组织示例
6. 业务角色
功能权限项的集合 + 隔离维度的组合,只集齐4要素,如下图所示:
业务角色示例
7. 业务角色分配用户
业务角色(功能权限项的集合+隔离维度+用户),集齐5要素,如下图所示:
业务角色分配用户示例
8. 用户分配通用角色-权限禁用
将5个要素直接组合。
注意:禁用权优先,如果存在禁用的某5个要素的组合,即使在上述7种情况中的任意一个存在这5个要素的授权,依然判定无权。
例如:
直接授权:用户U,应付,财务应付单,查询,A组织;
禁用:用户U,应付,财务应付单,查询,A组织。
如果验权时验证上述5个要素的组合,那么验权结果是:无权。
用户分配通用角色-权限禁用示例
9. 管理员的系统服务云的功能权限分配
管理员分组(用户的集合)+ 功能权限项的集合,集齐4要素(无组织隔离)。
这个功能用于进行管理员分级控制系统服务云下的功能权限范围 (管理员功能分新旧两种版本,这个只有在新版(V4.0.006以及其后版本)中才有,截止2022-3,尚未发布自动升级程序,需要使用的,可以手动升级)。
下图为管理员分组分配用户示例:
管理员分组分配用户示例
下图为管理员分组分配系统服务云下的功能权限项的范围示例:
功能权限项的范围示例
10. 全功能用户
在这个功能中添加的用户,几乎“无所不能”。其他上述功能授权就等于没有任何意义了。这个功能一般用于实施运维人员快速分析问题,或者产品演示,或者临时忽略功能验权等情况。
全功能用户示例
4 划重点
1. 从狭义角度而言,权限可分为功能权限、字段权限和数据规则;
2. 功能权限的要素可以分为用户、应用、表单、权限项、隔离维度;
3. 授权功能可分为以下10种:
授权功能说明
#往期推荐#
更多精彩内容,“码”上了解!↓
功能权限,多的是你不知道的事(上)
本文2024-09-23 00:31:47发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140040.html