单据权限
单据权限主要用于配置业务单据类型以及可控制的权限维度基础数据,配合角色、子账户
的权限管理,进行单据数据权限的限制,为HZERO平台提供一种可选的基础数据权限屏蔽功能。通过配置单据维度、单据权限
灵活的生成数据权限屏蔽规则,免去了手动配置权限规则
大量sql代码
单据权限
- 菜单层次:平台层、租户层
- 菜单路径:
系统管理
>单据权限管理
>单据权限
- 默认角色:平台管理员
单据权限列表
字段说明:
字段名称 | 字段描述 | 必输 | 可修改 |
---|---|---|---|
单据编码 | 单据权限类型唯一标识 | 是 | 否 |
单据名称 | 单据权限类型的名称 | 是 | 是 |
来源微服务 | 从HADM.ROUTE.SERVICE_CODE 值集视图中选取微服务,是数据屏蔽的目标微服务,作用于权限范围 |
是 | 是 |
来源数据实体 | SqlID,如org.hzero.platform.infra.mapper.LovMapper.selectLovHeaders | 是 | 是 |
层级 | 平台 :权限范围为平台下所有租户;租户 :权限范围为租户维护下配置的租户。 |
是 | 是 |
权限控制类型 | 所有人 :单据权限对单据权限范围定义下的所有用户生效;仅配置 :单据权限仅对分配了该单据的角色生效。 |
是 | 是 |
排序号 | 用于排序 | 是 | 是 |
描述 | 单据权限类型的描述信息 | 是 | 是 |
启用 | 启用和禁用两种状态,当为禁用时不能使用该单据权限类型 | 是 | 是 |
租户维护 | 当层级为平台 时可配置,点击新建按钮从HPFM.TENANT 值集视图中选择添加租户,点击删除按钮删除选择的租户 |
是 | 是 |
查询单据权限类型定义
操作步骤:进入系统管理
> 单据权限管理
> 单据权限
界面,输入查询条件,
点击按钮,查询到对应的信息。点击重置
按钮,清空查询条件。
查询字段:
- 类型名称:单据权限类型的名称,支持模糊查询
新建单据权限类型定义
操作步骤:进入系统管理
> 单据权限管理
> 单据权限
界面,点击新建
按钮,进入单据类型定义界面,输入完成信息后,点击确定
按钮,完成单据权限类型定义。
必输字段:
- 类型编码:单据类型唯一标识
- 类型名称:单据类型名称
- 来源微服务:从
HADM.ROUTE.SERVICE_CODE
值集视图中选取微服务,是数据屏蔽的目标微服务,作用于权限范围 - 层级:下拉选择,包括平台和租户
- 权限控制类型:下拉选择,包括所有人和仅配置
非必输字段:
- 来源数据实体:SqlID,如org.hzero.platform.infra.mapper.LovMapper.selectLovHeaders
- 排序号:用于排序
- 描述:单据权限类型的描述信息
编辑单据权限类型定义
操作步骤:进入系统管理
> 单据权限管理
> 单据权限
界面,点击操作列编辑
,进入编辑页面,输入完成消息后点击确定
按钮,编辑完成。
字段与新建页面字段一致。也可进行租户维护操作。
维护权限维度
操作步骤:进入系统管理
> 单据权限管理
> 单据权限
界面
点击操作
⟶维护权限维度
权限维度类型
- 限定业务范围:这里选择的是类型为
业务范围
的单据维度 - 限定个人用户:这里选择的是类型为
个人用户
的单据维度
字段说明
字段名称 | 字段描述 | 必输 | 可修改 |
---|---|---|---|
限定业务范围 | 类型为业务范围 的单据维度 |
是 | 否 |
限定个人用户 | 类型为个人用户 的单据维度 |
是 | 是 |
来源匹配表 | 与单据维度的值对比的目标表,当前业务范围需要限制的表名 | 是 | 是 |
规则类型 | 列 :来源匹配字段为来源匹配表中的一个字段;子查询 :来源匹配字段为与来源匹配表关联的一个子查询SQL |
是 | 是 |
来源匹配字段 | 与单据维度的值对比的目标表字段,当前业务范围需要限制的字段 | 是 | 是 |
子查询
示例,假设现在订单中存在创建人字段created_by
,现在需求是需要按照用户所有角色做拦截,也就是仅允许查看拥有某些角色的用户的单据,但是订单表并没有关联用户角色,所以此处无法直接通过列来筛选,这时候就可以使用子查询
来实现,示例规则如下(#{tableAlias}
代表来源表的表别名):
SELECT imr.role_id
FROM iam_member_role imr
WHERE #{tableAlias}.created_by = imr.member_id
AND imr.member_type = 'user'
操作
- 新建:点击添加单据维度,单据权限维度以维度类型分为
限定业务范围
、限定个人用户
两部分,对它们的操作并没有区别。 - 编辑:点击操作列下编辑,编辑分配的单据维度来源匹配表、来源匹配字段
- 删除:点击操作列下删除,在提示中点击确认删除分配的单据维度
作用
维护权限维度为单据权限配置单据维度,相当于添加数据屏蔽规则,每个单据维度都是数据屏蔽条件。单据权限对数据屏蔽仍是通过数据权限实现,维护一个单据维度后会动态配置上对应的权限范围
与权限规则
新建
维护的单据维度都会生成对应的权限规则和权限范围,可在编辑维度权限页面上查看对应数据屏蔽规则
编辑
维护的单据维度同时会修改对应权限规则,如果修改了来源匹配表字段则会生成新的权限范围,原来的权限范围会保留并删除与权限规则的对应关系。
删除
维护的单据维度会禁用对应的权限规则,禁用
单据权限会禁用该单据权限对应的所有权限规则。目前以上对单据权限的操作需要重新保存单据权限才能对权限规则和权限范围生效。
单据权限优先级
角色管理
配置的单据权限优先级低于子账户管理
,如用户A配置了单据权限B1,A当前角色配置有单据权限B2,这单据权限B1生效
角色管理-维护数据权限
- 菜单层次:租户层
- 菜单路径:系统管理 > 角色管理 > 角色管理
- 默认角色:租户管理员
点击操作列下操作
⟶维护数据权限
对维护数据权限
的修改需要点击保存
按钮后生效
权限维度 Tab页
页面布局
左右两栏,左侧展示可访问的单据权限,右侧展示选中单据权限维护的单据维度
字段说明
字段名称 | 字段描述 |
---|---|
单据 | 单据权限的单据名称 |
权限维度范围 | 权限维度分为业务范围 、个人用户 ,用于过滤权限值展示的权限维度。如“订单单据”单据权限选中业务范围 ,权限值则只会显示权限范围为业务范围 的单据维度公司。 |
权限值 | 展示单据权限下配置的单据维度,勾选复选框后可在权限数据Tab也上配置维度值 |
操作
- 查询:点击,查询条件单据名称可模糊查询
- 勾选:勾选了右侧某个限制范围,代表此角色使用该单据维度限制单据数据访问。
权限数据 Tab页
页面布局
左右两栏,左侧展示可配置维度数据的单据维度,该列表展示的是在权限维度 Tab页中勾选的权限值。右侧展示单据维度的配置数据,若单据维度定义中值来源类型
为本地编码
则该部分内容为本地编码指向的页面渲染结果,如公司单据类型(图一)。若是值集
该部分内容为值集视图选配页面,如值集单据维度(图二)。
图一:
图二:
操作
-
配置单据维度数据:为单据维度配置维度数据
-
本地编码(以图一为例):在页面中通过勾选公司复选框为公司单据维度添加数据,取消勾选的复选框为公司单据维度删除数据,由于本地编码页面无固定格式,就不再赘述
-
值集 (以图二为例)
2.1 添加数据:点击打开该单据维度
值来源
配置的值集视图(可多选),勾选数据后点击确认
按钮完成添加数据2.2 删除数据:勾选需要删除的数据,点击,在提示中选择确认完成数据删除
2.3 加入全部:打开加入全部开关,将把该值集中的数据全部加了单据维度中,无需再手动添加值集权限
-
-
复制权限:将该角色的单据权限配置复制添加给其他角色
-
点击,在弹出窗口中选择需要复制权限的角色。
-
添加角色:点击
新建
按钮,在HIAM.ASSIGNABLE_ROLE
值集视图中选择添加角色 -
取消角色:在操作列中点击取消,移除选中的角色
-
修改角色:点击角色列,通过
HIAM.ASSIGNABLE_ROLE
值集视图重新选择角色 -
复制权限:点击保存按钮,将该角色单据权限复制到选中角色
-
作用
角色管理-维护数据权限定义当前角色所要限制的单据数据,使得该角色只能访问通过数据屏蔽规则的单据。如角色A配置了单据权限B,并为B维护了单据维度C,C的来源匹配表为order_table
、company_id
,添加了值(1、2、3),则角色只能查询到order_table
表里 company_id in (1,2,3)
的单据。
子账户管理-权限维护
- 菜单层次:租户层
- 菜单路径:系统管理 > 子账户管理
- 默认角色:租户管理员
点击操作列下操作
⟶权限维护
操作
-
配置单据维度数据:配置当前用户的权限,与上文角色管理-维护数据权限中权限数据的
配置单据维度数据
操作相同,不再赘述。 -
权限交换:交换两个用户的权限
点击,在弹窗中使用HIAM.USER_AUTHORITY_USER
值集视图选择需要交换权限的目标用户,点击确认
按钮完成交互权限
- 权限复制:将当前用户的权限一键添加至其他用户,与上文角色管理-维护数据权限中权限数据的
复制权限
操作相同,不再赘述。
作用
子账户管理-权限维护定义当前用户所要限制的单据数据,作用同角色管理-维护数据权限
且优先级高于角色管理-维护数据权限
。