首页 > 代码库 > 开发之南十一:JEECG微云快速开发平台--基础用户权限
开发之南十一:JEECG微云快速开发平台--基础用户权限
开发之南十一:JEECG微云快速开发平台--基础用户权限
11.1. 权限设计
基本概念
权限管理模块涉及到的实体有:用户、角色和系统资源(包括系统菜单、页面按钮等)。用户可以拥有多个角色,角色可以被分配给多个用户。而权限的意思就是对某个资源的某个操作.一般通用的权限管理模块规定:所谓资源即应用系统中提供的要进行鉴权才能访问的资源(比如各类数据,系统菜单);所谓操作即增加、修改、删除、查询等操作。
权限模型
用户权限模型,指的是用来表达用户信息及用户权限信息的数据模型。即能证明“你是谁?”、“你能访问哪些受保护资源?”。
用户与角色之间构成多对多关系。表示同一个用户可以拥有多个角色,一个角色可以被多个用户所拥有。
角色与资源之间构成多对多关系。表示同一个资源可以被多个角色访问,一个角色可以访问多个资源。
权限设计模型如图81所示。
11.2. 权限设计目标
权限设计及权限管理的目标包括:
1) 对用户授予相应的角色
2) 对角色授予不同的菜单
3) 对角色授予不同的操作按钮权限
4) 进行数据级别的权限控制(行级别、列级别)
11.3. 权限设计
11.3.1. 数据表
数据表 | 实体类 | 说明 |
t_s_user | jeecg.system.pojo.base.TSUsr | [用户权限]系统用户表 |
t_s_base_user | jeecg.system.pojo.base.TSBaseUser | [用户权限]系统用户父类表 |
t_s_role | jeecg.system.pojo.base.TSRole | [用户权限]角色 |
t_s_role_user | jeecg.system.pojo.base.TSRoleUser | [用户权限]用户角色 |
t_s_depart | jeecg.system.pojo.base.TSDepart | [用户权限]部门机构表 |
t_s_role_function | jeecg.system.pojo.base.TSRoleFunction | [用户权限]角色权限表 |
t_s_operation | jeecg.system.pojo.base.TSOperation | [用户权限]操作权限表 |
t_s_function | jeecg.system.pojo.base.TSFunction | [用户权限]菜单权限表 |
11.3.2. 页面菜单
权限管理的相关菜单如图82所示。
目前1、2、3项已经实现,第4项正在开发中
11.3.3. 按钮权限
使用说明
按钮级别的权限依赖于菜单权限,也就是说,需要先为角色分配菜单,在已分配的菜单中,可以选择可以操作的按钮。
按钮权限的添加在菜单管理页面,点击【按钮设置】,设置该菜单页面相关的操作按钮,如图83所示。
按钮权限的分配在角色管理页面,在权限设置时,先为角色分配菜单,点击相应的菜单,在右侧的“操作按钮列表”面板中显示该菜单可分配的操作按钮,如图84所示。
开发说明
在JEECG系统中,可以通过系统的全局变量配置来决定是否启用按钮权限。如下:
/resources/sysConfig.properties 中button.authority.jeecg参数值如下: true(开启按钮权限) false(关闭按钮权限) 当为false时默认拥有所有按钮权限,如(3) |
DateGridTag中根据系统的配置进行按钮权限的控制:
(1)系统开启按钮权限并且DateGridTag里面相关的按钮操作有配置则根据配置做按钮权限的控制;
(2)系统开启按钮权限但是DateGridTag里面相关的按钮操作没有配置则不作按钮权限的控制;
(3)系统关闭按钮权限则所有的按钮不做按钮权限的控制;
(4)admin用户按钮权限不做限制。
操作步骤
①按钮设置:进入【系统管理】→【菜单管理】→【常用插件】,点击【单表模型】的【按钮设置】
②代码中对按钮加入操作代码。
③角色管理中对菜单设置按钮权限
④开启按钮权限
⑤以角色为【普通用户】的账户登录系统