上面章节:策略兼容权限方案中介绍了老版权限方案的兼容方法,本章节介绍如何使用DeepModel对象实现老版权限方案。仍以项目管理为例
同上面章节:策略兼容权限方案中的场景描述
DeepModel&领域模型搭建(不包含权限)

DeepModel中新建部门对象Dep、大区对象Reg,部门对象指向大区对象,即每个部门对应一个大区
 

DeepModel中新建项目对象Proj,包含状态字段proj_status,有四种状态:待提交(editing)、待评审(submitted)、已通过(approved)、已拒绝(rejected);包含部门字段dep,指向部门对象,替换上面章节中的事业部字段entity
DeepModel中新建权限关系对象AccessRelation,记录用户与可访问大区间的关系,作为老版权限方案的对象实现。其中,用户字段user指向用户对象,大区字段reg指向大区对象,两个字段的链接对象选项可设置为多选,表示多个指定用户可访问多个指定大区。权限关系对象也可指向用户组对象,记录用户组与可访问大区间的关系

新建基于项目对象的领域模型,即项目模型

平台配置中新增用户组:项目经理

全局权限:先验条件为权限方案的策略,可使用先验条件为指定用户组的策略实现
先验条件为权限方案的策略中设置角色/角色组,先验条件为指定用户组的策略中直接设置对应用户组

行级权限:先验条件为权限方案的策略,可使用先验条件为访问规则的策略实现

DeepModel访问规则的访问表达式中同时设置当前用户是否可访问大区、状态字段范围,可使用模板。其中,当前用户是否可访问大区通过关联权限关系对象,即老版权限方案的对象实现进行判断。通过项目数据中部门所属大区,在权限关系对象中获取可访问该大区的用户范围,如果当前用户在该用户范围中,则当前用户满足是否可访问大区的条件
 
 


同上面章节:策略兼容权限方案中的策略测试,假设项目对象有以下12条数据,在新标签页测试指定用户的权限,测试结果同上面章节
| 项目ID | 项目状态 | 部门(dep) | 项目负责人 | 
|---|---|---|---|
| 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 | 
回到顶部
咨询热线
