JEECG平台权限设计

链接存放位置:https://github.com/PlayTaoist/jeecg-lession/tree/master/%E6%9D%83%E9%99%90%E7%AE%A1%E7%90%86-lession

一、权限的设计概念

JEECG封装了完善的用户权限模块,支持菜单权限,列表权限,表单权限,数据权限。数据权限功能已实现极致: 支持行级、列级、字段级控制,实现不同人看不同数据,不同人对同一个页面操作不同字段。系统按钮权限和表单权限原来是正控制,只有授权的人才有权限,未授权看不到对应按钮;(admin拥有超级权限,不受控制)

用户权限模块:指用户信息及用户权限信息数据。一个用户可以分配多个角色;也可以隶属于多个组织结构;多个组织机构情况下,登录需要选择机构登录,方便数据权限控制。多个组织登录情况如下:

管理员可以对用户进行管理,如果用户已经失效可以直接冻结该用户禁止其登录,新开的用户需要激活后才能登录

二、权限的对象

JEECG权限设计,采用用户、角色、菜单、组织机构来进行组建,角色为主要授权对象,组织机构可以分配角色。 菜单类型分两种:权限类型和菜单类型

  • 菜单类型: 菜单类型的菜单,在首页菜单展示和访问使用
  • 权限类型: 权限类型的菜单,在首页菜单不做展示,只做权限控制使用

1.用户管理

用户管理,用户可以分配多个角色;也可以隶属于多个组织机构,多个组织机构情况下,登录需要选择机构登录,方便数据权限控制;

2.角色管理

角色是权限组单位,通过角色管理菜单权限。

3.菜单管理

菜单管理,用来做首页菜单管理和权限管理,权限包括:菜单访问权限、按钮权限、表单权限、数据权限。

4.组织机构管理

组织机构管理,支持集团模式多个分公司,第一级默认是公司类型,从二级开始可设置部门和岗位,部门和岗位通过类型区分;组织机构可以单独设置角色;

三、数据权限规则

一、功能说明

列表数据权限,主要通过数据权限控制行数据,让不同的人有不同的查看数据规则; 比如: 销售人员只能看自己的数据;销售经理可以看所有下级销售人员的数据;财务只看金额大于5000的数据等等;

二、数据权限分两大类型

序号 类型 规则字段区别 说明
1 编码方式 规则字段是驼峰写法,对应hibernate实体的字段 编码模式(通过代码生成器生成代码)
2 Online方式 规则字段是下划线写法,对应表的字段 Online模式(在线表单模式,无代码)

三、数据权限规则篇

1.当前用户上下文变量

注意:数据权限配置,规则值可以填写系统上下文变量(当前登录人信息),从而根据当前登录人信息进行权限控制。

编码 描述
sys_user_code 当前登录用户登录账号
sys_user_name 当前登录用户真实名称
sys_date 当前系统日期
sys_time 当前系统时间
sys_company_code 当前登录用户公司编号
sys_org_code 当前登录用户部门编号

规则值,配置写法如下:#{sys_user_code}

四、如何生成代码

首先登录网站===>在线开发===>Online表单开发===>创建表单

创建表单后需要先同步到数据库,然后点击代码生成 。可以根据弹出的对话框选择代码生成的存放位置。然后copy到项目中。

另外一种生成方案是使用Java中的GUI生成代码。『官方建议使用Online生成』。直接run As test包下的JeecgOneGUI.java 文件然后弹出录入界面

如果是基础功能不建议选择生成代码。直接在线生成就可以,如果有需要做开发API接口给前台使用的则需要生成代码放到项目中以便增加注解【API采用Swagger】,只有在方法上加入@ApiOperation注解才能在Swagger中显示。

五、功能测试

创建表单后并且同步到数据库后可以在表单后面看到一个***功能测试***按钮。点击功能测试按钮看到的界面就是我们需要的生成的界面,创建表的时候风格一般都是默认不做选择

六、具体的数据权限控制

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

列数据权限控制

如果想隐藏某一列的值,不想让某类用户看到该列的值可以使用如下方法

请看操作步骤

然后给角色分配权限

使用角色为 经理的用户进行登录看到的效果如下:

然后给经理角色【页面权限规则】 工作日志字段隐藏 打勾

打勾完毕后,再次使用角色为 经理的用户进行登录看到的效果如下:

如果只想让登录用户只能看到自己的数据可以进行如下操作

首先需要在菜单栏目中进行设置

设置完毕后进入角色管理,给角色分配权限

使用员工角色登录然后查看显示效果如下

再次给员工角色分配权限,打上勾

然后再次使用员工角色登录然后查看显示效果如下

JEECG平台权限设计的更多相关文章

  1. 10、ERP设计之系统基础管理(BS)- 平台化设计

    ShareERP 2013-09-03 ERP业务平台化是每个软件提供商必须要进行的趋势,传统定制化路线已死,不能走定制化的老路了.以往最大问的题是不能累积和沉淀技术及提升项目业务管理能力,其次是管理 ...

  2. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(13)-权限设计 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据 ...

  3. 数据权限设计——基于EntityFramework的数据权限设计方案:一种设计思路

    前言:“我们有一个订单列表,希望能够根据当前登陆的不同用户看到不同类型的订单数据”.“我们希望不同的用户能看到不同时间段的扫描报表数据”.“我们系统需要不同用户查看不同的生产报表列”.诸如此类,最近经 ...

  4. Java生鲜电商平台-销售管理设计与架构

    Java生鲜电商平台-销售管理设计与架构 说明:在Java开源生鲜电商平台中,销售人员我们称为跟餐饮店老板沟通与下载APP的一类地推人员.(所谓地推指的就是一个一个上门拜访.) 由于销售人员有以下几类 ...

  5. AppBox升级进行时 - 扁平化的权限设计

    AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. AppBox v2.0中的权限实现 AppBox v2.0中权限管理中涉及三个 ...

  6. 一个基于RBAC0的通用权限设计清单

    注:RBAC0与RBAC1不同在于权限继承.关于RBAC1的权限设计,敬请关注作者后续CSDN博客.1,用户表 保存系统用户信息,如张三.李四,字段可以有id.name.fullname.email. ...

  7. ASP.NET MVC +EasyUI 权限设计(二)环境搭建

    请注明转载地址:http://www.cnblogs.com/arhat 今天突然发现博客园出问题了,老魏使用了PC,手机,平板都访问博客园了,都是不能正常的访问,原因是不能加载CSS,也就是不能访问 ...

  8. ASP.NET MVC +EasyUI 权限设计(一)开篇

    在前一段时间中,老魏的确非常的忙碌,Blog基本上没有更新了,非常的抱歉,那么在后面的时间中,老魏会尽量的抽时间来写的,可能时间上就不太富裕了.今天开始呢,老魏会和大家分享一下关于权限设计的有关文章, ...

  9. Agile.Net 组件式开发平台 - 权限管理组件

    RBAC原则       (1)最小权限原则之所以被RBAC所支持,是因为RBAC可以将其角色配置成其完成任务所需要的最小的权限集.       (2)责任分离原则可以通过调用相互独立互斥的角色来共同 ...

随机推荐

  1. 看到他我一下子就悟了-- Lambda表达式

    一直对Lambda表达式似懂非懂,平常也用过,就是不太明白有时候还要百度.周六去图书馆看书,看到下面这几句话,一下子就悟了: Lambda表达式(匿名函数),基本形式: (intput paramte ...

  2. [PHP]算法-最大子数组问题思路

    最大子数组问题,股票价格示例: 1.在最高价格开始向左寻找之前的最低价格 2.在最低价格开始向右寻找之后的最高价格 3.暴力求解法,尝试每队可能的买进和卖出组合,保证卖出在买进之后 key buy s ...

  3. SQL Server 连接(内连接,外连接,完全连接,交叉连接,联合)

    1.连接 有时候需要将连个表的数据合并成一个结果集来显示.为了解决这个问题,就需要用到JOIN连接. 2.内部连接 内部连接根据一个或几个共同的字段将记录匹配到一起.内部连接仅仅返回那些存在字段匹配的 ...

  4. python爬虫入门---第三篇:保存一张图片

    import requests import os url = 'http://imgsrc.baidu.com/forum/w%3D580%3B/sign=749ed018cecec3fd8b3ea ...

  5. TUM数据集rgbd_benchmark工具的使用方法

    # 在学习视觉slam过程中,需要对数据集合进行预处理和对slam或者跟踪结果进行评价,TUM提供一组这样的工具,为了自己以后方便查找,于是把它记录下来 一.RGBD_Benchmark工具下载链接: ...

  6. Android Studio 点击两次返回键,退出APP

    该功能的实现没有特别复杂,主要在onKeyDown()事件中实现,直接上代码,如下: //第一次点击事件发生的时间 private long mExitTime; /** * 点击两次返回退出app ...

  7. Vue CLI3 开启gzip压缩

    gizp压缩是一种http请求优化方式,通过减少文件体积来提高加载速度.html.js.css文件甚至json数据都可以用它压缩,可以减小60%以上的体积. webpack在打包时可以借助 compr ...

  8. SQL Server的一个不显眼的功能 备份文件的分割

    SQL Server的一个不显眼的功能 备份文件的分割 当完整备份数据库的时候,我们有时候可能会遇到一种极端情况,比如服务器上C,D,E三个盘符都只剩下5G空间了 但是如果要完整备份业务库需要12G的 ...

  9. [20171206]rman与truncate2.txt

    [20171206]rman与truncate2.txt --//上午测试发现truncate的表在做rman备份时还要做8个extents的备份.--//不知道自己的猜测是否正确,选择一个使用UNI ...

  10. C# Aspose.Cells方式导入Excel文件

    读取Excel 类 我返回的是DataTable 类型 也可以返回DataSet类型 public class XlsFileHelper { public DataTable ImportExcel ...