权限控制
一、功能权限(包括按钮权限、报表权限)
功能权限包括三部分:
(1)模块的CRUD,导出、统计、批量导入、批量修改等
(2)模块的自定义按钮
(3)SQL报表:每一个报表有查看和导出权限
可在后台为不同的角色分配不同的功能权限。
二、纵向:字段权限
(1)开启字段权限,配置文件:
/dodo/src/main/java/com/gentools/dodo_generate_config.properties
# 配置开启字段权限
dodo.generate.field.considerright=true
(2)生成数据和代码
执行main方法,生成数据
src/main/java/com/gentools/Step_2_MakeBaseData.java
执行main方法,生成代码
src/main/java/com/gentools/Step_4_GenerateCode.java
(3)后台为不同角色分配不同的字段权限
三、横向:行级权限
通过 @DodoRowRight 注解来实现,有四种用法
假如有个POJO:Organization(组织机构)
假如有个POJO:OrgPerson(组织机构下的人员)
(1)限制只能访问归属于自己的组织机构数据
//(1)在 Organization 中添加字段
@DodoField(sortSeq = 1, name = "管理员", isAdmin = true)
private Admin orgAdmin;
//(2)在 Organization 上添加注解
@DodoRowRight(entityProperty = "orgAdmin")
//(3)生成代码
(2)限制只能访问自己所属的组织机构
//(1)在 Admin 中添加字段
@DodoField(sortSeq = 1, name = "管理员组织")
private Organization adminOrg;
//(2)在 Organization 上添加注解
@DodoRowRight(entityProperty = "this", principalKey = "myOrg")
//(3)生成代码
(3)限制只能访问自己组织下的人员
//(1)在 Admin 中添加字段
@DodoField(sortSeq = 1, name = "管理员组织")
private Organization adminOrg;
//(2)在 OrgPerson 中添加字段
@DodoField(sortSeq = 1, name = "归属组织")
private Organization ownOrg;
//(3)在 OrgPerson 上添加注解
@DodoRowRight(entityProperty = "ownOrg", principalKey = "adminOrg")
//(4)生成代码
(4)限制只能访问级别为2和3的组织信息
//(1)在 Organization 中添加字段
@DodoField(sortSeq = 1, name = "组织级别")
private Integer orgLevel;
//(2)在 Organization 上添加注解
@DodoRowRight(entityProperty = "orgLevel", principalKey = "checkOrgLevel", principalKeyShowName = "可访问的组织级别")
//(3)生成代码
//(4)添加或者编辑角色信息,在`扩展属性`里找到字段:`可访问的组织级别` 进行编辑,填入:`2,3` 即可完成限制
四、权限动态更新
以下五种情况下,会动态更新系统元数据、当前登录的管理员的权限信息 无需重启系统或者退出重新登录。
(1)SQL报表添加、编辑
(2)管理员编辑
(3)角色编辑
(4)权限增加、删除、修改
(5)菜单增加、删除、修改
当前内容版权归 DodoFramework 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 DodoFramework .