一,查找按钮权限的设置

第一步:会根据用户的相关信息去查到它的角色表;

SELECT * FROM SYS_USER WHERE user_id='eded77bdf35347249b2bacfa181c869d'


第二步:有了角色表之后再根据角色与权限的中间表查到权限表相关的信息;
buttonQXnamelist = buttonrightsService.listAllBrAndQxname(ROLE_ID); //此角色拥有的按钮权限标识列表
SELECT
*
FROM
SYS_ROLE_FHBUTTON a
LEFT JOIN SYS_FHBUTTON b
ON a.BUTTON_ID = b.FHBUTTON_ID
WHERE a.ROLE_ID = '68f8e4a39efe47c7bb869e9d15ab925d'


第三步,假如权限表中有这个权限则取它的名字,并把它的值设置成1;
map.put(buttonQXnamelist.get(i).getString("QX_NAME"),"1"); //按钮权限
{Datajur=1, email=1, FromExcel=1, toExcel=1, userBinding=1, sms=1, FHSMS=1}
第四步:假如以后有权限的修改直接来增加或者删除角色与权限的中间表就行了,其它的不用动。

二,当跳出页面的逻辑

onclick=siMenu('m37','z2','按钮权限','buttonrights/list.do')主要就是把角色表的信息,角色与权限的中间表的信息,和权限表的信息传到前台就行了。
SYS_ROLE张表中有所有的角色
SYS_ROLE_FHBUTTON 是角色与权限的中间表
SYS_FHBUTTON 权限表
SYS_ROLE.ROLE_ID=SYS_ROLE_FHBUTTON.ROLE_ID&&SYS_FHBUTTON.FHBUTTON_ID=SYS_ROLE_FHBUTTON.BUTTON_ID

SELECT t.*,h.* FROM SYS_ROLE t,SYS_ROLE_FHBUTTON h WHERE t.ROLE_ID=h.ROLE_ID

SELECT t.*,h.* FROM SYS_FHBUTTON t,SYS_ROLE_FHBUTTON h WHERE SYS_FHBUTTON.FHBUTTON_ID=SYS_ROLE_FHBUTTON.BUTTON_ID;

三,点击按钮时候时候的逻辑

这时候如果去除某个角色的某个权限,只需要把中间表的ROLE_ID ,和中间表的BUTTON_ID删除就行了,这就断掉了两者之间的联系就没有这个权限了。
url: "http://localhost:8088/MVNFHM/buttonrights/upRb.do?ROLE_ID="+ROLE_ID+"&BUTTON_ID="+FHBUTTON_ID+"&guid="+new Date().getTime(),
如果没有就添加,如果有就删除
这个表:SYS_ROLE_FHBUTTON
BUTTON_ID ROLE_ID 主要是这两个字段
if(null != buttonrightsService.findById(pd)){ //判断关联表是否有数据 是:删除/否:新增
buttonrightsService.delete(pd); //删除
FHLOG.save(Jurisdiction.getUsername(), "删除按钮权限"+pd);
}else{
pd.put("RB_ID", this.get32UUID()); //主键
buttonrightsService.save(pd); //新增

页面某些特定图标的权限,比如导入导出表格,下载等等,这个权限必须在有某个页面查看的权利的基础上(细粒度)(shiro项目中来的四)的更多相关文章

  1. 权限的分类(shiro项目中来的五)

    第一种权限:菜单栏展示还是不展示的权限(粗颗粒) 实现方法,在SYS_ROLE表中添加一个字段rights,通过 public static BigInteger sumRights(String[] ...

  2. 使用Layui、Axios、Springboot(Java) 实现EasyExcel的导入导出(浏览器下载)

    实现EasyExcel的导入导出(浏览器下载) 实现三个按钮的功能,但是却花费了一天的时间包括总结. 使用到的技术:springboot layui axios EasyExcel mybatis-p ...

  3. Oracle学习笔记之七(用户管理、角色与权限、导入导出等)

    下面这些基本的SQL语句应该熟悉,能够灵活运用.最好在不查资料的情况下,能够写出如下的任何代码. 1. 用户操作 --create user username identified by passwo ...

  4. Oracle常用命令-用户、表空间、赋权限、导入导出

    1.1   删除表空间 drop tablespace QBKJ including contents and datafiles; 1.2   删除用户 drop user admin cascad ...

  5. setBit testBit权限管理(shiro项目中来的二)

    一,setBit testBit权限管理的理解 1.1.jdk7文档解释 public boolean testBit(int n)Returns true if and only if the de ...

  6. 数据库文件导入导出操作,以及赋予权限SQL语句

    1.导出数据库xxxx和tlog(经过测试,没有问题)# /data/mysql/bin/mysqldump -u root -ppassword qq9x | gzip > /home/xxx ...

  7. springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、

    要实现的目的:根据登录用户.查询出当前用户具有的所有权限.然后登录系统后.根据查询到的权限信息进行不同的操作. 以下的代码是在搭好的框架之下进行的编码. 文章目录 核心实现部分. 第一种是将用户表和角 ...

  8. Django-xadmin+django-import-export导入导出的实现

    转载自:https://blog.csdn.net/zcyuefan/article/details/77748850 1. 需求vs现状1.1 需求要求做一个ERP后台辅助管理的程序,有以下几项基本 ...

  9. oracle 导入导出功能

    关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. - EXPDP和IMPDP是服务端的工具程序,他 ...

随机推荐

  1. Laravel5.5核心架构理解

    1.依赖注入 方法传入组件名,框架会自动实例化,方法内可直接使用 例如最常用的requert对象 2.服务容器 其实,Laravel 的核心就是一个 IoC 容器,Laravel 的核心本身十分轻量, ...

  2. linux下统计某个进程的CPU占用和内存使用

    为了测试是否有内存泄露,写了一个监控脚本,统计这个进程的cpu和内存 主要用了 ps aux命令, 很简单,不多解释了,上脚本 #!/bin/bash # while loop CpuMemStat= ...

  3. js作用域的相关知识

    众所周知,在ES6之前,JavaScript是没有块级作用域的,如下图所示: 学过其他语言的同学肯定有点诧异,为什么会这样呢?因为js还是不同于其他语言的,在ES5中,只有全局作用域和函数作用域,并没 ...

  4. MongoDB安装篇-Win7 X64

    介绍 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库 ...

  5. Ubuntu配置Nginx虚拟主机和支持ThinkPHP

    [Nginx配置虚拟主机] 每一个 server { listen       80;         server_name  www.a.com; ..... } 就表示一台虚拟域名, 然后对应的 ...

  6. Xcode intellisense meaning of letters in colored boxes like f,T,C,M,P,C,K,# etc

    in Xcode this is called "Code Sense". And these icons also exist in Xcode 3. Red: macros # ...

  7. os模块中关于文件/目录常用的函数使用方法

    os模块中关于文件/目录常用的函数使用方法 函数名 使用方法 getcwd() 返回当前工作目录 chdir(path) 改变工作目录 listdir(path='.') 列举指定目录中的文件名('. ...

  8. 获取目录-Winform

    // 获取程序的基目录. System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. System.Diagnostics.Process.G ...

  9. bzoj 1307/1318 玩具 线段树+记录时间戳

    玩具 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 743  Solved: 404[Submit][Status][Discuss] Descrip ...

  10. 最长周长三角形 O(nlogn)

    题意   有根棍子,棍子的长度为.想要从中选出三根棍子组成周长尽可能长的三角形.请输出最大的周长,若无法组成三角形输出0. 思路   很容易想到采用三重循环来枚举所有三角形,复杂度为.   更好的办法 ...