1、权限的设计概念
JEECG封装了完善的用户权限模块,支持菜单权限,列表权限,表单权限,数据权限。数据权限功能已实现极致: 支持行级、列级、字段级控制,实现不一样人看不一样数据,不一样人对同一个页面操做不一样字段。系统按钮权限和表单权限原来是正控制,只有受权的人才有权限,未受权看不到对应按钮;(admin拥有超级权限,不受控制)git
用户权限模块:指用户信息及用户权限信息数据。一个用户能够分配多个角色;也能够隶属于多个组织结构;多个组织机构状况下,登陆须要选择机构登陆,方便数据权限控制。多个组织登陆状况以下:github
管理员能够对用户进行管理,若是用户已经失效能够直接冻结该用户禁止其登陆,新开的用户须要激活后才能登陆数据库
2、权限的对象
JEECG权限设计,采用用户、角色、菜单、组织机构来进行组建,角色为主要受权对象,组织机构能够分配角色。 菜单类型分两种:权限类型和菜单类型less
用户管理,用户能够分配多个角色;也能够隶属于多个组织机构,多个组织机构状况下,登陆须要选择机构登陆,方便数据权限控制;测试
角色是权限组单位,经过角色管理菜单权限。网站
菜单管理,用来作首页菜单管理和权限管理,权限包括:菜单访问权限、按钮权限、表单权限、数据权限。编码
组织机构管理,支持集团模式多个分公司,第一级默认是公司类型,从二级开始可设置部门和岗位,部门和岗位经过类型区分;组织机构能够单独设置角色;url
3、数据权限规则
列表数据权限,主要经过数据权限控制行数据,让不一样的人有不一样的查看数据规则; 好比: 销售人员只能看本身的数据;销售经理能够看全部下级销售人员的数据;财务只看金额大于5000的数据等等;hibernate
序号 | 类型 | 规则字段区别 | 说明 |
---|---|---|---|
1 | 编码方式 | 规则字段是驼峰写法,对应hibernate实体的字段 | 编码模式(经过代码生成器生成代码) |
2 | Online方式 | 规则字段是下划线写法,对应表的字段 | Online模式(在线表单模式,无代码) |
注意:数据权限配置,规则值能够填写系统上下文变量(当前登陆人信息),从而根据当前登陆人信息进行权限控制。
编码 | 描述 |
---|---|
sys_user_code | 当前登陆用户登陆帐号 |
sys_user_name | 当前登陆用户真实名称 |
sys_date | 当前系统日期 |
sys_time | 当前系统时间 |
sys_company_code | 当前登陆用户公司编号 |
sys_org_code | 当前登陆用户部门编号 |
规则值,配置写法以下:#{sys_user_code}
4、如何生成代码
首先登陆网站===>在线开发===>Online表单开发===>建立表单
建立表单后须要先同步到数据库,而后点击代码生成 。能够根据弹出的对话框选择代码生成的存放位置。而后copy到项目中。
另一种生成方案是使用Java中的GUI生成代码。『官方建议使用Online生成』。直接run As test包下的JeecgOneGUI.java 文件而后弹出录入界面
若是是基础功能不建议选择生成代码。直接在线生成就能够,若是有须要作开发API接口给前台使用的则须要生成代码放到项目中以便增长注解【API采用Swagger】,只有在方法上加入
@ApiOperation
注解才能在Swagger中显示。
5、功能测试
建立表单后而且同步到数据库后能够在表单后面看到一个***功能测试***按钮。点击功能测试按钮看到的界面就是咱们须要的生成的界面,建立表的时候风格通常都是默认不作选择
6、具体的数据权限控制
1.按钮权限规则控制
列表按钮权限控制,主要是控制列表上按钮、操做连接的隐藏;按钮权限配置后,默认未受权用户都看不到,具体配置在菜单中配置如图
页面控件编码
operationCode
:<t:dgToolBar title="填报日志" icon="icon-add" url="tBussDailyLogController.do?goAdd" operationCode="#db_generate_input" funname="add"></t:dgToolBar> <t:dgToolBar title="日志点评" icon="icon-edit" url="tBussDailyLogController.do?goUpdate" operationCode="#db_generate_form" funname="update"></t:dgToolBar> <t:dgToolBar title="查看" icon="icon-search" url="tBussDailyLogController.do?goUpdate" funname="detail"></t:dgToolBar>页面控件编码能够自定义,把定义好的编码填写到 【菜单栏目的】-【页面控件】
填写完毕后点击【角色管理】能够根据角色来选择是否隐藏按钮【隐藏不大勾,打勾不隐藏】
2.列表数据权限用法
数据权限菜单的配置
建立数据权限类型菜单(注意:列表访问连接和数据请求连接不是一个,此为加载数据请求) 注意: 这里很容易配置错误,必定注意【datagrid针对列表数据控制?后面要跟datagrid】 用户数据请求地址:userController.do?datagrid
列数据权限控制
若是想隐藏某一列的值,不想让某类用户看到该列的值可使用以下方法
请看操做步骤
而后给角色分配权限
使用角色为 经理的用户进行登陆看到的效果以下:
而后给经理角色【页面权限规则】 工做日志字段隐藏 打勾
打勾完毕后,再次使用角色为 经理的用户进行登陆看到的效果以下:
若是只想让登陆用户只能看到本身的数据能够进行以下操做
首先须要在菜单栏目中进行设置
设置完毕后进入角色管理,给角色分配权限
使用员工角色登陆而后查看显示效果以下
再次给员工角色分配权限,打上勾
而后再次使用员工角色登陆而后查看显示效果以下