按钮权限的设计及实现

news/2025/3/15 9:12:32/文章来源:https://www.cnblogs.com/cyzf/p/18715235

说明

    该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。

    该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。

    说明:OverallAuth2.0 是一个简单、易懂、功能强大的权限+可视化流程管理系统。

友情提醒:本篇文章是属于系列文章,看该文章前,建议先看之前文章,可以更好理解项目结构。

qq群:801913255,进群有什么不懂的尽管问,群主都会耐心解答。

有兴趣的朋友,请关注我吧(*^▽^*)。

关注我,学不会你来打我

效果演示

一、按钮权限实现流程

 

以上是按钮权限实现的流程图,从上图可以清晰的看到,按钮它是存在于某一个菜单(模块)上的,所以要搞懂按钮权限的实现过程,建议先查看《菜单权限设计及实现》

二、表设计

在《菜单权限设计及实现》的基础上,新增了3张表,如下

按钮表:存放按钮名称、按钮事件、按钮样式、按钮类型等数据的表。

按钮样式表:为了统一管理和控制系统中的按钮样式,设计出了该表,该表存放按钮样式大小、图标、颜色、文字颜色、是否圆角、是否朴素等样式。在新建按钮时可以给按钮选择喜欢的样式。

按钮角色表:存放按钮属于哪个角色、那个菜单。

三、按钮与菜单的关系

在之前必须说明一点:当前按钮权限没有精确到【数据按钮权限】控制(后续会有),只有【按钮权限】控制。

什么是【按钮权限】?什么又是【数据按钮权限】,看下图↓

按钮权限:上图中【按钮】,就是我说的【按钮权限】,也是本篇文章要简述的。

数据按钮权限:上图中【数据按钮】,也就是【数据按钮权限】,本篇文章不会涉及(后续会有)。

  举列:

  可能有人不知道这2者的区别,在这里先简单描述下。

  【数据按钮权限】是对按钮更加精确的控制。

  我可以根据规则来控制系统操作人员能操作【设置用户角色】、【编辑】按钮的权限。

  如:【系统操作人员1】,可以操作上图↑中【设置用户角色】、【编辑】的所有权限。

  而【系统操作人员2】,只能操作【王五】这条数据的【设置用户角色】、【编辑】按钮,而【李四】、【张三】这2条数据的【设置用户角色】、【编辑】按钮不可操作。

言归正传

文章开头动图中的【按钮权限】,如何实现?

其实这个问题,在文章开头流程图中就已经体现。下面我将把流程图逐步拆分,进行详细的讲解。

按钮它必定是存在于某个菜单或某个页面中。所以在设计overallAuth2.0统一权限分发中心系统时,我建立了按钮与菜单的关系,以便维护和控制按钮权限。如下图↓

 

上图实现了菜单、按钮、角色三者之间的关系。当人员登录系统时,我们可以得到人员的角色。那么根据角色就能得到登录人员拥有的菜单。如下图↓

 

得到菜单后,我们就可以点击菜单,得到菜单id和登录获得的角色id,得到当前点击菜单的按钮。如下图↓ 

需要源码的,关注公众号,发送【权限】获取源码

以上就是本篇文章的全部内容,感谢耐心观看

后端WebApi 预览地址:http://139.155.137.144:8880/swagger/index.html

前端vue 预览地址:http://139.155.137.144:8881

关注公众号:发送【权限】,获取源码

有兴趣的朋友,请关注我微信公众号吧(*^▽^*)。

关注我:一个全栈多端的宝藏博主,定时分享技术文章,不定时分享开源项目。关注我,带你认识不一样的程序世界

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java对象的“自我介绍术”:彻底搞懂toString()魔法

本文以Java中toString()方法的底层原理与实践应用为核心,通过案例分析与代码实战,系统解析了该方法在对象调试、日志输出等场景中的重要性,并提供了一套完整的开发指导方案。前言 当小Z在咖啡馆调试代码时,打印了Java对象,看着控制台输出的Student@2f4d3709陷入困惑。这个…

读DAMA数据管理知识体系指南20数据安全风险

读DAMA数据管理知识体系指南20数据安全风险1. 数据安全制约因素 1.1. 保密等级1.1.1. 保密意味着机密或私密1.1.2. 机密信息仅在“需要知道”的基础上共享1.1.3. 保密等级取决于谁需要知道某些类型的信息1.2. 监管要求1.2.1. 根据外部规则(如法律、条约、海关协定和行业法规)…

git 已知问题 命令行调用 git 时可能存在环境变量投毒问题

本文记录一个我在 git 钩子唤起一个 C# dotnet 的进程,在此进程里面使用 Process.Start 执行 git 命令的时候,被 git 钩子环境变量投毒的问题核心代码非常简单,我只是使用 git add 命令而已var sourceFolder = @"C:\lindexi\Work\Source\";var processStartInfo =…

eSIM神器之ESTK记录

本文内容一部分引用“ 灯塔旅人”公众号文章内容。 先说原理: 原理 ⚡️普通手机:营业厅将信息写入实体SIM中,然后插入手机,实现相关功能; ⚡️eSIM手机:内置了eSIM芯片,可以直接扫码写入运营商提供的eSIM并支持切换; ⚡️ESTK:形象地比喻为将eSIM手机中eSIM芯片取出,…

Google TPU第六代TPUv6

简单谈谈Google TPUv6 根据Google TPU第六代的数据做了一些性能数据的对比,需要注意的是TPUv6当前应该是一个用于训推一体的单Die的版本,用于训练的V6p双Die版本应该会后期再发布. 需要注意的是在国内外都开始卷大模型推理价格的时候, TPU这样的东西对于提高ROI非常有帮助。快…

NPU 是什么芯片?AI芯片都有哪些?(下)

8. HPU(Holographic Processing Unit) 全息处理器。微软HoloLens是世界上首台独立的全息计算机设备,能够提供高清晰度的全息影像,其秘密在于HoloLens搭载的Holographic Processing Unit(全息处理单元,简称HPU),这是一款定制芯片,可以处理和交互不同传感器及Intel Atom…

NPU 是什么芯片?AI芯片都有哪些?(上)

NPU 是什么芯片?AI芯片都有哪些? NPU就是CPU功能细化的产物,就像当年只有CPU一样,发现处理一些简单的重复的任务,特别像游戏这种大量作图时只能用软件算法,效率及其低下,所以发展处的加速卡,发展成为GPU,现在处理一些ai学习算法时都是用GPU软件模拟,效率低下,功耗大…

Nginx 配置与实战

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发…

《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》 4本书推荐

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

乐心手环6S拆解

PART1:背景使用了1年多的乐心手环电量终于扛不住了,于是便拆开看看里面使用的方案还有堆叠设计PART2:拆解先来看看乐心手环产品功能和外观照片去掉手环的表带,通过热风枪调至200℃,对这面盖和四周均匀加热至烫手,然后从两边拆开即可分离面盖和主体元器件清单可以看到使用的…

请求响应

apipost插件,用于测试1. 简单参数 通过request手动获取请求参数: @RestController public class easy {@RequestMapping("/easyget")public String easyget(HttpServletRequest request) { //通过request获取参数String name = request.getParameter("name"…

【机器学习面试场景问题】

1、ResNet是什么? ‌ResNet(Residual Network,残差网络)是一种在深度学习领域中非常重要的卷积神经网络(CNN)架构。 ResNet的核心思想是残差学习,通过学习输入与输出的残差,简化优化任务。其关键结构是残差块,通过短连接(Skip Connection)直接跳过部分非线性层,将输…