页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制

一.菜单访问权限控制

配置helloword菜单【系统管理】-【菜单管理】 页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第1张图片

  • 其中前端组件配置相对src/views/目录下的 目录名+文件名
  • 例如页面src/views/jeecg/helloworld.vue 前端组件配置 jeecg/helloworld

页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第2张图片 用户角色授权【系统管理】-【角色管理】-授权 页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第3张图片页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第4张图片 点击菜单访问页面展示Hello World!

二.表单访问权限控制

禁用控制用法二

一、用法

(1)页面引入工具js

import { disabledAuthFilter } from "@/utils/authFilter"

(2)methods方法中实现:

isDisabledAuth(code){
      return disabledAuthFilter(code);
    },

页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第5张图片

页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第6张图片

(2)权限控制代码示例:



二、权限配置:

页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第7张图片

三、使用说明

  • :disabled="isDisabledAuth('name')"调用方法disabledAuth,方法参数“name”为授权标识,该方法根据授权规则返回true/false,控制是否禁用
  • 权限编码在【系统管理--菜单管理】中配置,添加按钮类型的菜单数据,授权标识配置值“name”,策略选择可编辑,状态选择有效
  • 控制规则:
  • (1)菜单权限中若没有对应指令编码的配置,则不进行禁用控制,
  • (2)权限配置无效状态时,则不进行权限控制,有效状态时进行控制
  • (3)策略:可编辑,未授权时控件禁用,授权后可编辑

四、流程节点权限

(1)说明:

  • 节点权限配置优先级高于菜单权限配置
  • 节点权限应用于使用组件方式加载的附加表单页面,并对附加表单页面进行权限控制
  • 显示控制用法见上面用法描述
  • 节点权限是通过 props: ['formData'],来传递给节点表单页面的,因此页面一定要定义这个,否则,节点配置的权限不生效,节点表单开发方法见【流程节点对接表单页面开发方法】

  • 权限配置无效状态时,则不进行权限控制,有效状态时进行控制

  • (2)methods方法中实现:
    isDisabledAuth(code){
          return disabledAuthFilter(code,this.formData);
        },
    

(2)权限配置: 在【流程管理-流程设计】中找到需要配置的流程,进入【流程配置-流程节点】选择需要进行权限控制的节点, 点击【更多-权限设置】,新增/编辑 来配置权限。

页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第8张图片

三.页面按钮权限用法

页面按钮权限用法

1.前端页面通过使用指令 v-has

添加用户

2.后台进入菜单管理页面配置按钮权限菜单 页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第9张图片

3.进入角色管理授权按钮(授权后即可看见按钮) 页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第10张图片

四.JAVA访问权限控制

1.后台请求权限控制,通过Shiro注解 @RequiresPermissions

@RequestMapping(value = "/add", method = RequestMethod.POST)
@RequiresPermissions("user:add")
public Result add(@RequestBody JSONObject jsonObject) {

2.后台进入菜单管理页面配置访问权限标识(选择按钮类型) (配置方式与按钮权限一样,即同一个授权标识,可以同时控制后台请求和前台按钮显示控制) 页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第11张图片

3.进入角色管理授权访问权限(授权后即可访问该请求) 页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第12张图片

五.数据权限规则篇

 

1、功能说明

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

2、数据权限分两大类型

序号 类型 规则字段区别 说明
1 编码方式 规则字段是驼峰写法,对应mybatis实体的字段 编码模式(通过代码生成器生成代码)
2 Online方式 规则字段是下划线写法,对应表的字段 Online模式(在线表单模式,无代码)
规则字段配置说明(非常重要): 
①条件规则:大于/大于等于/小于/小于等于/等于/包含/模糊/不等于
②规则值:指定值 ( 固定值/系统上下文变量 )

3、数据权限规则篇

1.当前用户上下文变量

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

编码 描述
sys_user_code 当前登录用户登录账号
sys_user_name 当前登录用户真实名称
sys_date 当前系统日期
sys_time 当前系统时间
sys_org_code 当前登录用户部门编号
sysMultiOrgCode 当前登录用户拥有的所有机构编码,逗号分隔

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

2.建表规范(系统标准字段)

如果需要通过当前登录人,进行数据权限控制,则业务表必须有以下系统标准字段;数据添加和编辑,jeecg会通过拦截器自动注入操作人的信息。 比如:创建人,创建时间,创建人所属部门、创建人所属公司,有了这些标准字段,就可以通过当前登录人进行数据隔离控制;

字段英文名 字段中文名
CREATE_BY 系统用户登录账号
CREATE_NAME 系统用户真实名字
SYS_ORG_CODE 登录用户所属部门

3.组织机构邮编规则

JEECG组织机构支持无限层级,上下级关系通过组织机构编码实现,组织机构编码规则类似邮编方式,看下图; 邮编规则优势: 邮编规则,上下级编码固定规律,便于定位下级和上级; 页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第13张图片

六.系统数据权限用法

 

1、功能说明

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

2、使用说明 (有两种使用方法,以下说明以用户管理列表查询示例 配置数据规则:只查询用户账号带1的用户

方法A步骤如下:

  • A-1.新增权限菜单:进入【系统管理】-->【菜单管理】界面 新增一个权限菜单(如下图)

页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第14张图片

  • A-2.配置数据权限规则:找到上述1新增的菜单,点击操作列更多中的数据规则,配置,只查询用户账号带1的用户(如下图) 页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第15张图片
  • A-3.角色授权:进入【系统管理】-->【角色管理】界面找到当前用户对应的角色,点击 更多->授权 操作,右侧弹出框中找到上述1菜单,点击后勾选权限规则,保存(如下图) 页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第16张图片
  • A-4.在后台请求方法上加注解@PermissionData在方法上加注解是为了提高系统运行效率,这样就可以指定请求走权限过滤的逻辑,而非一棍子打死,让所有请求都去筛选一下权限(如下图) 页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第17张图片
  • A-5.测试,访问用户管理界面发现数据被过滤了,即权限生效!

方法A的问题在于,每个请求都需要配置一个权限菜单,这样其实也很费劲,同时对于菜单管理也不是很好,鉴于此可以考虑使用方法B 方法B基于注解属性pageComponent,步骤如下:

  • B-1.找到需要配置权限的页面菜单,这里是用户管理菜单

页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第18张图片 直接在该菜单上配置数据规则(如A-2)

  • B-2.角色授权(如A-3)
  • B-3.添加注解 (如A-4,不同的是注解上增加了一个属性)@PermissionData(pageComponent="system/UserList")pageComponent的值和B-1中菜单的前端组件值保持一致
  • B-4.测试,访问用户管理界面发现数据被过滤了,即权限生效!
规则字段配置说明(非常重要): 
①条件规则:大于/大于等于/小于/小于等于/等于/包含/模糊/不等于/自定义SQL
②规则值:指定值 ( 固定值/系统上下文变量 )

3、数据权限规范说明

1.系统上下文变量

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

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

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

2.建表规范(系统标准字段)

如果需要通过当前登录人,进行数据权限控制,则业务表必须有以下系统标准字段;数据添加和编辑,jeecg会通过拦截器自动注入操作人的信息。 比如:创建人,创建时间,创建人所属部门、创建人所属公司,有了这些标准字段,就可以通过当前登录人进行数据隔离控制;

字段英文名 字段中文名
CREATE_BY 系统用户登录账号
CREATE_NAME 系统用户真实名字
SYS_ORG_CODE 登录用户所属部门

3.组织机构邮编规则

JEECG组织机构支持无限层级,上下级关系通过组织机构编码实现,组织机构编码规则类似邮编方式,看下图; 邮编规则优势: 邮编规则,上下级编码固定规律,便于定位下级和上级; 页面菜单访问权限控制,表单访问权限控制,按钮级别权限控制,数据权限控制_第19张图片

 

你可能感兴趣的:(开源框架)