功能权限

“权都董”给“权不董”、“权半董”热心介绍了功能权限的五要素,今天他们继续聊功能权限的验权逻辑。

1 验权场景
触发验权有很多种情况,最常见的是以下五种:
1、获取当前用户有权的应用范围;
2、获取当前用户有权的菜单范围;
3、判断当前用户执行当前操作是否有权;
4、获取当前用户在当前应用当前表单的查询权下有权的隔离维度范围;
5、获取当前用户在当前应用当前表单下有权和无权的权限项的范围。
1.1 获取有权的应用范围
如下图,用户在打开选择“应用”时,会对用户拥有的应用验权。

判断用户对某个应用有权的逻辑
要求用户拥有该应用下至少一个授权对象的其中一个权限项。(针对非全员应用);
该应用是“全员应用”,只要用户分配了对应许可分组也会被系统认为有权;
系统参数-公共参数-只显示购买应用,启用则只显示租户购买的应用,即使用户授权了未购买的应用也不会显示;


1.2 获取有权的菜单范围
当用户进入应用工作台时(例如:应付),加载应用菜单(如下图的左侧菜单)时对用户拥有的应用验权。

判断用户对某个应用菜单有权的逻辑
优先获取应用表单配置的权限项(配置路径:开发平台-XX应用-菜单管理-修改菜单-高级信息页签);
其次“打开页面”选择内容获取对应权限,如果选择单据、基础资料则验证菜单多选表单的【新增】权,如果选择列表、动态表单则验证菜单多选表单的【查询】权;

为了方便大家的理解,我们先了解一下菜单元数据。
应用的菜单是可以绑定表单(“页面”选择表单),注意“表单名称”(选择携带)和“菜单名称”(可编辑)可能是不同的。
如下图:菜单是“财务应付处理”,但绑定的表单叫“财务应付单”。

应用菜单的【高级信息】页签,如下图:

“权限项“指定验权的权限项,如配置则最优先;如未配置则根据打开页面的选择获取对应的权限;
“打开页面“中提供下拉选项,不同的表单类型下拉选项各不相同;
如果选择 “单据”或“基础资料”,那么点击菜单后打开表单的详情界面则验证【新增】权;
如果是“其他”(如列表、报表、动态表单等等),则打开表单验证【查询】权。
菜单验权的逻辑(有权则显示),如下图:

上图中的红圈序号和下方序号是一一对应,“显示”即判定有权:
当前菜单所在的应用是全员应用吗?如果是,此菜单有权。
当前菜单绑定的表单是否启用“控制功能权限”,并且至少绑定了一个权限项?如果不是,意味着该表单不需要控权,那么此菜单有权。
当前菜单的“权限项”配置项为空?如果为空,走步骤4;非空,走步骤5。
当前菜单的“打开页面”如果是“单据”或“基础资料”,则验“新增”权,其他情况都验“查询”权。
当前表单的权限项是否存在菜单指定验权的“权限项”?(假设菜单的“权限项”指定“提交”, 当前表单权限项添加“查询”、“新增”和“修改”,没有“提交”;则系统认为该表单不希望验这个“提交”权,所以判定菜单有权。
根据上游步骤要求验证的权限项,验权当前用户是否具有“用户+应用+表单+权限项”的授权(此处不考虑权限控制类型)。

1.3 判断当前执行操作的权限状态
判断用户对某个操作有权的逻辑
点击工具栏,验证该操作对应的权限项,来源元数据配置,如下图:

授权对象的主业务组织在当前用户授权组织范围;
1)授权对象列表常用条件的业务组织或详情界面所选的组织,显示用户的授权组织;
2)授权组织必须具备授权对象要求的组织职能类型;
例如:财务应付单要求结算组织字段所选组织必须有核算组织职能,则组织F7显示的是核算组织视图中的授权组织记录,如果授权组织不具有核算组织职能则不会显示;

超链接打开先验修改权,有权则打开编辑界面;无修改权则再验查看权,有权则打开查看界面;
举例如下:
给用户直接授权,授权组织:A分公司,功能权限:应付-财务应付单-查询,如下图:

财务应付单列表点击【提交】按钮,系统会验当前用户的“应付-财务应付单-提交”权,并且同时验权限控制类型的范围是否匹配。
不具有权限则提示无权,如下图:

财务应付单的“权限控制主字段”(和主业务组织是一致的)是“结算组织”,如下图:

结算组织字段的组织职能是核算组织,视图方案未选(视图方案指定的按指定视图验权,未指定的则取该组织职能的默认视图验权),如下图:

视图方案的默认视图,如下图:

结算组织的值是 “A分公司”,那么点击“提交”时,系统会查“当前用户-应付-财务应付单-提交-A分公司”这样的授权要素组合,如存在则有权,反之则无权。如下图:

此处的组织验权(权限控制类型验权),可以理解为是一种“特别
功能权限
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



