首页 > 代码库 > 开发之南十一: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所示。

 目前123项已经实现,第4项正在开发中

11.3.3. 按钮权限

使用说明

按钮级别的权限依赖于菜单权限,也就是说,需要先为角色分配菜单,在已分配的菜单中,可以选择可以操作的按钮。

按钮权限的添加在菜单管理页面,点击【按钮设置】,设置该菜单页面相关的操作按钮,如83所示。

按钮权限的分配在角色管理页面,在权限设置时,先为角色分配菜单,点击相应的菜单,在右侧的“操作按钮列表”面板中显示该菜单可分配的操作按钮,如84所示。

开发说明

JEECG系统中,可以通过系统的全局变量配置来决定是否启用按钮权限。如下:

/resources/sysConfig.properties 中button.authority.jeecg参数值如下: 

true(开启按钮权限)

false(关闭按钮权限)

当为false时默认拥有所有按钮权限,如(3)

DateGridTag中根据系统的配置进行按钮权限的控制:

1)系统开启按钮权限并且DateGridTag里面相关的按钮操作有配置则根据配置做按钮权限的控制;

2)系统开启按钮权限但是DateGridTag里面相关的按钮操作没有配置则不作按钮权限的控制;

3)系统关闭按钮权限则所有的按钮不做按钮权限的控制;

4admin用户按钮权限不做限制。

操作步骤

①按钮设置:进入【系统管理】→【菜单管理】→【常用插件】,点击【单表模型】的【按钮设置】

②代码中对按钮加入操作代码。

③角色管理中对菜单设置按钮权限

④开启按钮权限

⑤以角色为【普通用户】的账户登录系统