若依 数据权限图文详细理解及改造

news2024/10/1 1:30:07

数据权限

所谓数据权限,就是根据不同角色的登录用户,查看不同的列表数据

若依数据权限

若依的数据权限也是基于角色实现的,支持五种权限模式,按权限大小一次排列:

  • 全部数据权限,表示拥有所有部门的数据权限 ·
  • 自定数据权限,表示拥有指定的若干部门的数据权限
  • 本部门数据权限,表示仅拥有用户所属部门(不包括子部门)的数据权限
  • 本部门及以下数据权限,表示仅拥有用户所属部门和所有子部门的数据权限
  • 仅本人数据权限,表示仅拥有用户本人的数据权限

页面设置数据权限

若依页面数据权限
若依设置数据权限不止页面需要设置,后端也要设置,只设置页面不设置后端就没用!!,对于这个,后面会有详细解释

后端设置数据权限

若依后端设置数据权限非常简单,使用 @DataScope 注解即可实现数据权限
@DataScope 注解下有三种属性:deptAlias ,userAlias,permission
@DataScope注解

注意:

使用此注解的deptAlias 和 userAlias 属性 需数据库有dept_id或者user_id 并且在SQL后面拼接 ${params.dataScope} 而且是实体类需继承BaseEntity 类所以无法支持mybatis-Plus
SQL
因为数据权限的实质还是拼接SQL,而params.dataScope就是框架预留的拼接。而 params就在BaseEntity 中
BaseEntity 类

deptAlias

根据部门设置数据权限

  1. 首先在角色管理中设置本部门数据权限或者本部门及以下数据权限
    在这里插入图片描述
  2. 然后在后端接口实现类上添加 @DataScope(deptAlias = “t1”) ,此t1是你要查询的数据表的别名,如果是单表查询的话即可不设置值,直接 @DataScope(deptAlias) 即可。
    在这里插入图片描述
    3.在页面上查看数据

admin查看(admin能查看所有数据):

在这里插入图片描述

切换供应商账号(供应商设置的自定义数据权限,能看到供应商和施工方数据):

在这里插入图片描述
在这里插入图片描述

切换服务商账号(服务商只能看到服务商数据):

在这里插入图片描述
在这里插入图片描述

userAlias

userAlias 同deptAlias 这里就不多啰嗦了

* permission

着重讲一下permission,permission的定义是 权限字符(用于多个角色匹配符合要求的权限)默认根据权限注解@ss获取,多个权限用逗号分隔开来,如果注解没有写的话,就默认是你角色的权限
在这里插入图片描述
这里我改造了一下,因为我们业务需要,比如一个项目是a部门创建的,这个项目理应只有a部门才能看到,项目需要一个审批人,而这个审批人是b部门下的或者其他人,所以登录人如果是审批人也应该看到,我们审批人字段为approval_id,可能还会有经办人或者什么什么各种人,所以改造了一下permission属性,使得也能够自动拼接在系统数据权限的后面
在这里插入图片描述
实现类:
在这里插入图片描述
自动拼接:
在这里插入图片描述
既拼接了部门权限,又拼接了我们自定义字段的权限,而且是or 只要满足一个即可查询出数据
在这里插入图片描述
使得供应商创建的原本供应商才能看到的数据,因为登录人是此项目的审批人,也能看到数据

DataScopeAspect

DataScopeAspect是@DataScope的切面类,也是若依框架实现拼接权限SQL的核心
dataScopeFilter 方法,是主要方法
在这里插入图片描述
里面的常量即为我们在页面上设置的不同数据权限
在这里插入图片描述
如果表里面没有dept_id或者user_id的话,比如只有createdBy 创建人id,实在需要改造的话,也可以把这里SQL里面的user_id改成你想要的createdBy 字段

注:以上所有数据及名称都经过处理,均不涉及公司机密

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/54875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

远程办公:通过cpolar内网穿透,远程桌面控制家里公司内网电脑

疫情反反复复的当下,有时候会遇到需要居家办公的情况,但在办公室的电脑上仍有很多重要资料需要存取,且办公室所在的局域网中也有很多相关资源需要被访问(如文件共享服务器、OA系统等)。如何能在家通过远程处理好办公事…

Blend for Visual Studio 概述

https://learn.microsoft.com/zh-cn/visualstudio/xaml-tools/creating-a-ui-by-using-blend-for-visual-studio?viewvs-2022 Blend for Visual Studio 可用于设计基于 XAML 的 Windows 和 Web 应用程序。 它提供了与 Visual studio 相同的基本 XAML 设计体验,并添…

长安汽车董事长下场宣传原力技术 全擎引领电动化出行普及时代

11月30日,长安汽车董事长朱华荣在朋友圈发布了长安汽车擘画未来的全新能源及电动化解决方案:长安原力技术——原力智能增程、原力超集电驱。长安汽车成为业内首个通过微信朋友圈发布全新技术方案的车企。短短的3分钟视频,展露着长安汽车对技术…

Mand Mobile - 滴滴出品的适用于金融项目的 Vue 移动端 UI 组件库,免费开源、灵活快速、丰富实用

推荐一款可用性很强的移动 UI 组件库,交互细致,有不少直接就可以用的金融行业的组件。 关于 Mand Mobile Mand Mobile 是一款由滴滴前端团队出品、专为金融场景设计的移动端 Vue 2 组件库,可以帮助前端开发者快速构建项目,UI 风…

ShaderLab实现序列帧动画

序列帧动画介绍 序列帧动画的原理比较简单,依次播放一系列关键帧图像,当播放速度达到一定数值时,看起来就是一个连续的动画。 序列帧动画有很多实现方式,而通过Shader来实现是性能比较好的一种,是由GPU来进行计算。 效果如下 我们使用一张8x8的纹理图片来实现帧动画 步…

单相半波可控整流电路仿真设计(任务书+lunwen+MATLAB仿真源文件)

目 录 摘 要 4 关键字 4 ABSTACT 5 Key words 5 1 绪论 7 1.1半波整流简介 7 1.2 本文研究的内容 7 1.3 单相半波可控整流电路建模与基本参数 7 2 单相半波可控整流电路(电阻性负载) 10 2.1 电路的结构与工作原理 10 2.2 Matlab下的模型建立 10 2.3 仿真…

使用字典映射关系格式化输出字符串format_map()方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 使用字典实现格式化输出 format_map()方法 [太阳]选择题 以下python代码输出正确的一项是? s1姓名:{name},职业:{job} dict1{name:张三,job:学生} print(…

MP5705 底板 用户手册

一、开发板简介1.1 产品简介 MP5705开发板底板适配本公司相关核心板,型号为MP5650(详见MP5650用户手册)。通过核心板底板的模式来设计组成完整的开发。底板与核心板采用4个120pin高速板间连接器对插,型号为PANASONIC公司的AXK5A2…

PCL 曲率计算

一、曲率 点云的曲率及计算_点云侠的博客-CSDN博客_点云曲率计算 曲率是曲线弯曲程度的一个度量。 曲率的分类&#xff1a; 1、主曲率、平均曲率、高斯曲率 主曲率&#xff1a; 主曲率计算源码&#xff1a; // template <typename PointInT, typename PointNT, typen…

在低容错业务场景下落地微服务的实践经验

作者&#xff1a;禾连健康 “健康体检是一个低容错的场景&#xff0c;用户到医院体检&#xff0c;由于 IT 原因导致无法完成预约的项目&#xff0c;会对用户体验造成极大的影响。”* ——禾连健康 CTO 邓志豪 禾连健康成立于 2014 年&#xff0c;是一家从体检场景切入的健康管…

Proxmox虚拟环境搭建

一、Proxmox VE简介 ProxmoxVE 是一个完整的、开源的企业虚拟化服务器管理平台。它在单个平台上紧密集成了 KVM 管理程序和 Linux 容器(LXC)、软件定义的存储和网络功能。通过集成的基于 web 的用户界面&#xff0c;您可以轻松地管理虚拟机和容器、集群高可用性或集成的灾难恢…

界面控件DevExtreme——轻松将TreeList数据导出为PDF格式

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#xff0c;使您可以利用现代Web开发堆栈&#xff08;包括React&#xff0c;Angular&#xff0c;ASP.NET Core&#xff0c;jQuery&#xff0c;Knockout等&#xff09;构建交互式的Web应用程序&#xff0c;该套件附带功能齐…

DevOps的流程与规范介绍

在DevOps中想要实现快速、高质量的业务交付&#xff0c;流程和规范是至关重要的。流程包含软件从需求提出到产品上线投产全套生命周期的所有环节&#xff0c;如需求提出、代码提交、上线流程等。规范包含敏捷需求分解规范、用户故事编写规范、需求输出表等。 一、流程 流程用…

[附源码]计算机毕业设计游戏交易平台Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

链表高频笔试的OJ题

文章目录 一、合并两个有序链表 解题代码 二、反转链表 解题代码 三、分割链表 解题代码 四、链表的回文结构 解题代码 五、链表相交 解题代码 六、环形链表 解题代码 七、复制带有随机指针的复制链表 解题代码 一、合并两个有序链表 题目来源&#xff1a;牛客网。 题目难度&a…

公共用房管理系统有哪些功能和范围?

数图互通房产管理 数图互通公共用房管理系统的管理功能和范围包括: 1、对全部公房进行图形化、电子化、规范、动态化管理。 2、房屋数据定义:可对校区、片区、建筑物、楼层、房间数据进行增删改查&#xff0c;对房间属性数据进行批量修改。 3、档案及多类型附件管理:可对房…

自适应滤波器更新算法-EP1

自适应滤波器更新算法-EP1 自适应滤波器是回声消除系统中非常重要的一个功能模块&#xff0c;而对于自适应滤波器来说&#xff0c;如果更新滤波器系数则是关键所在。本文将介绍几种现有的滤波器更新算法&#xff0c;并附上Matlab测试代码。 1、LMS算法 1.1算法原理 LMS算法即…

【Matplotlib绘制图像大全】(二十二):Matplotlib绘制气泡图

前言 大家好,我是阿光。 本专栏整理了《Matplotlib绘制图像大全》,内包含了各种常见的绘图方法,以及Matplotlib各种内置函数的使用方法,帮助我们快速便捷的绘制出数据图像。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmMatp…

变电站远程监控维护,工程师不用出差跑断腿

电力的稳定产出和供应是社会生产、人民生活的重要保障之一。电力监控系统的作用是对变电站设备和变配电系统的运行状态进行监控和管理&#xff0c;保证安全稳定生产&#xff0c;使得终端用户的用电更加安全&#xff0c;同时企业自身的智能化管理水平也能有所提升。 随着经济和城…

TLS版本及CipherSuites确认及设置

在使用Https&#xff08;AS2、RosettaNet等协议&#xff09;传输协议进行数据传输中&#xff0c;有时会遇到下面这些报错信息&#xff1a; ①276–Error during handshake:接收到的消息异常&#xff0c;或格式不正确。 ②13003&#xff1a;Connot conclude ssl handshake.Caus…