访问策略已兼容老版权限方案,通过配置先验条件为权限方案的策略。以项目管理为例
类似上面章节例子:需求管理,简化场景与描述,主要介绍策略兼容相关配置
项目场景:项目经理新建项目,提交后发起项目流程:开始->大区负责人审批项目->结束
项目状态:待提交、待评审、已通过、已拒绝。其中,待提交对应“项目经理新建项目”步骤,待评审对应“大区负责人审批项目”步骤,审批后为已通过或已拒绝
项目权限
项目经理可以新建项目
项目经理可以查看自己负责的项目
大区负责人可以查看该大区已提交的项目,已提交包括项目状态:待评审、已通过、已拒绝
权限方案搭建
新建实体维度Entity
平台配置中新增用户组:项目经理
新建权限方案access
DeepModel&领域模型搭建(不包含权限)
DeepModel中新建项目对象Proj,包含状态字段proj_status,有四种状态:待提交(editing)、待评审(submitted)、已通过(approved)、已拒绝(rejected);包含事业部字段entity,取值需要对应实体维度Entity,可从DM-维度新建基于实体维度Entity的视图对象,作为事业部字段entity的链接对象
新建基于项目对象的领域模型,即项目模型
配置策略前需要先开启额外启用权限方案,开启后,如果存在先验条件为权限方案的策略,则不能关闭
选择关联的当前应用的权限方案
映射已选权限方案中的维度到模型主对象的文本属性或单选链接,判断条件时可按维度设置过滤主对象数据
新建策略时,全局权限、行级权限的先验条件都可设置为权限方案。注:权限方案暂不支持谓语拒绝
全局权限的先验条件为权限方案时,需要设置角色/角色组,可多选,在其中任一角色/角色组(对应用户/用户组)的用户视为满足该条件
如上图策略项目经理可以新建项目,假设角色/角色组设置为项目经理,如果当前用户D在项目经理用户组,则满足条件
行级权限的先验条件为权限方案时,需要设置以下两部分,同时满足这两部分才视为满足该条件
角色/角色组:可多选,判断条件时,首先用户需要在其中任一角色/角色组(对应用户/用户组),然后通过符合的角色/角色组,在权限方案中获取各维度取值范围,如果维度映射主对象的属性/链接数据都在对应维度取值范围内,则视为满足角色/角色组条件
如上图策略大区负责人可以查看该大区已提交的项目,假设角色/角色组设置为华北负责人、华东负责人、华南负责人,如果当前用户D不是任何大区的负责人,则不满足角色/角色组条件;如果当前用户A为华北负责人,则项目数据中事业部需要为HB(华北)的后代即DEPT_001(001事业部)或DEPT_002(002事业部),否则不满足角色/角色组条件
状态字段:可不配置,或配置多个主对象状态字段与对应状态范围,注:一个状态字段配置在一行,由于不同行之间类似and拼接,以过滤主对象数据。判断条件时,如配置的所有状态字段数据都在对应范围内,即视为满足状态字段条件;如未添加任何状态字段,也视为满足状态字段条件
先验条件为权限方案的策略与其他策略一起进行权限判定
假设项目对象有以下12条数据
项目ID |
项目状态 |
事业部(entity) |
项目负责人 |
---|---|---|---|
PROJ_0001 |
editing |
DEPT_001 |
D |
PROJ_0002 |
submitted |
DEPT_001 |
D |
PROJ_0003 |
approved |
DEPT_001 |
D |
PROJ_0004 |
rejected |
DEPT_001 |
D |
PROJ_0005 |
editing |
DEPT_003 |
D |
PROJ_0006 |
submitted |
DEPT_003 |
D |
PROJ_0007 |
approved |
DEPT_003 |
D |
PROJ_0008 |
rejected |
DEPT_003 |
D |
PROJ_0009 |
editing |
DEPT_006 |
D |
PROJ_0010 |
submitted |
DEPT_006 |
D |
PROJ_0011 |
approved |
DEPT_006 |
D |
PROJ_0012 |
rejected |
DEPT_006 |
D |
在新标签页测试指定用户的权限
华北负责人用户A测试结果如下,其中可查看需求:PROJ_0002、PROJ_0003、PROJ_0004
华东负责人用户B测试结果如下,其中可查看需求:PROJ_0006、PROJ_0007、PROJ_0008
华南负责人用户C测试结果如下,其中可查看需求:PROJ_0010、PROJ_0011、PROJ_0012
项目经理用户D测试结果如下
项目经理用户E测试结果如下
回到顶部
咨询热线