一,查找按钮权限的设置

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

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 游记

    心情非常复杂.大概就是我问到的所有人都A掉了T1那样. 的确没有按套路出牌,今年T1不是大模拟,反倒是T2. ……已经不想再提到今天的T1了.如果真的要我说,我只能说 我再次学了一整年的OI,结果栽到 ...

  2. 用 label 控制 Pod 的位置 - 每天5分钟玩转 Docker 容器技术(128)

    默认配置下,Scheduler 会将 Pod 调度到所有可用的 Node.不过有些情况我们希望将 Pod 部署到指定的 Node,比如将有大量磁盘 I/O 的 Pod 部署到配置了 SSD 的 Nod ...

  3. 在window上安装redis

    redis没有官方的windows版本,如果需要在windows安装可以下载由微软维护的redis(https://github.com/MicrosoftArchive/redis). 在这里我们采 ...

  4. IOS使用pods初次加载出现Pods-resources.sh: Permission denied错误的解决方案

    在使用了pods之后首次编译加载时会出现错误 你的Pods存放目录/Pods/Target Support Files/Pods/Pods-resources.sh: Permission denie ...

  5. OpenSSL 中DES-ECB 加密使用注意事项

    参考:http://blog.csdn.net/cparent/article/details/40652051DES加密算法作为一个过时的东西,使用的项目已经很少了.最近在调试与服务器端进行DES加 ...

  6. gitlab10.0安装手记

    + +exec chpst -e /opt/gitlab/etc/gitlab-workhorse/env -P \ + -U git \ + -u git \ + /opt/gitlab/embed ...

  7. [业界良心系列] OI资料分享

    正式退役辣....混吃等死了这么久以后....终于也是必然的结果吧.... 分享一些资料: 链接:http://pan.baidu.com/s/1c1SRFmo 密码:bcfc 有一些资料有版权, 如 ...

  8. 解决CXF的java.io.FileNotFoundException: class path resource [META-INF/cxf/cxf-extension-soap.xml] cannot be opened because it does not exist

    以下是错误信息 九月 25, 2017 8:22:04 下午 org.springframework.web.context.support.XmlWebApplicationContext prep ...

  9. python入门学习笔记(一)

    写在开头:         A:python的交互式环境                                                                         ...

  10. Asp.Net Core 2.1+的视图缓存(响应缓存)

    响应缓存Razor 页与 ASP.NET 核心 2.0 中不支持. 此功能将支持ASP.NET 核心 2.1 版本. 在老的版本的MVC里面,有一种可以缓存视图的特性(OutputCache),可以保 ...