上面章节:策略兼容权限方案中介绍了老版权限方案的兼容方法,本章节介绍如何使用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 |
回到顶部
咨询热线