一,查找按钮权限的设置

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

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. NOIP 2017 day -1 杂记

    我几乎要崩溃了. 写任何板子都是第一遍一定写不对,后来发现是傻逼性错误. 好奇怪的,这些东西明明我都会,为什么现在我都忘了? 很烦.现在心里特别乱,写什么都写不下去. 可能我是真的无法放心这次的比赛. ...

  2. bzoj 4830: [Hnoi2017]抛硬币 [范德蒙德卷积 扩展lucas]

    4830: [Hnoi2017]抛硬币 题意:A投a次硬币,B投b次硬币,a比b正面朝上次数多的方案数,模\(10^k\). \(b \le a \le b+10000 \le 10^{15}, k ...

  3. CF341C. Iahub and Permutations [DP 排列]

    http://codeforces.com/contest/341/problem/C 题意: 有一个长度为n的排列a,其中有一些位置被替换成了-1.你需要尝试恢复这个排列,将-1替换回数字.求有多少 ...

  4. BZOJ 2083: [Poi2010]Intelligence test [vector+二分]

    2083: [Poi2010]Intelligence test Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 469  Solved: 227[Su ...

  5. centos7下安装apache服务器httpd的yum方式安装

    转自Clement-Xu的csdn博客 http://blog.csdn.net/clementad/article/details/41620631   Apache在Linux系统中,其实叫&qu ...

  6. Linux ipip隧道及实现

    一.IP隧道技术 IP隧道技术:是路由器把一种网络层协议封装到另一个协议中以跨过网络传送到另一个路由器的处理过程.IP 隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可 ...

  7. C/C++语言简介之程序结构

    C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数.因此, ...

  8. python资源推荐

    一.文档教程 1. 廖雪峰python教程 廖老师的教程我相信不用说了吧,每个学习python的人或多或少都听说过他,对我的帮助很大. 2.python中文学习大本营 名字叫做python中文学习大本 ...

  9. ZOJ - 3818 字符串

    思路:对于"ABABA"可以先枚举"AB",然后检查下一个串是否等于"AB",剩下的串就是A,最后检查A和B是否相等:对于"ABA ...

  10. acdrem1083 人民城管爱人民 DP

    思路:d(i, 0)表示从节点i到达大运村的最短路径,d(i, 1)表示从节点i到达大运村的次短路径. 1.最短路:当做DAG处理即可. 2.次短路:假设当前在u点处,下一个节点是v.v到终点的最短路 ...