3 动态查询用户权限
3.1 需求分析
截至目前在测试授权时使用的权限数据是静态数据,正常情况的流程是:
1、管理员给用户分配权限,权限数据写到数据库中。
2、认证服务在进行用户认证时从数据库读取用户的权限数据(动态数据)
本节实现动态权限数据。

之前权限是这里硬编码 写死的权限

3.2.1 数据模型结构
打开xc_user数据库,找到下边的表:

xc_user:用户表,存储了系统用户信息,用户类型包括:学生、老师、管理员等
xc_role:角色表,存储了系统的角色信息,学生、老师、教学管理员、系统管理员等。
xc_user_role:用户角色表,一个用户可拥有多个角色,一个角色可被多个用户所拥有
xc_menu:模块表,记录了菜单及菜单下的权限
xc_permission:角色权限表,一个角色可拥有多个权限,一个权限可被多个角色所拥有

3.2.2 数据模型的使用

本项目教学阶段不再实现权限定义及用户权限分配的功能,但是基于权限数据模型(5张数据表)及现有数据,要
求学生在数据库中操作完成给用户分配权限、查询用户权限等需求。
1、查询用户所拥有的权限
步骤:
确定用户的id
查询用户所拥有的角色
查询用户所拥有的权限

查询49号用户,拥有的权限。

先查询到这个用户

再查用户的角色

角色的权限

拿到角色的权限

code就是权限标识符

新增加一条权限

想让用户拥有这条添加的权限 xc_permission

再查询sql就可以拿到查询图片的权限了。

SELECT * FROM xc_menu WHERE id IN(
SELECT menu_id FROM xc_permission WHERE role_id IN(
SELECT role_id FROM xc_user_role WHERE user_id = '49'
)
)

也可以通过添加角色的形式给用户添加权限。

给用户多设置几个角色

最新文章

  1. 原生ajax实现登录(一部分代码)
  2. cessss
  3. selenium自动化-java-封装断言
  4. 040医疗项目-模块四:采购单模块—采购单创建好之后跳转到采购单修改页面(editcgd.action)
  5. BZOJ 1068: [SCOI2007]压缩
  6. Convert Date between LocalDateTime
  7. 2016值得关注的语言平台、JS框架
  8. WinForm - ListView点击空白事件
  9. UVA 10245 The Closest Pair Problem 最近点问题 分治算法
  10. 基于vip和twemproxy代理实现redis集群的无感知弹性扩容
  11. [转载] 红黑树(Red Black Tree)- 对于 JDK TreeMap的实现
  12. 爬虫(requests)
  13. Django学习笔记(1)--第一个项目
  14. 大数据学习笔记5 - Spark
  15. BZOJ3583 杰杰的女性朋友 矩阵
  16. 【Mac使用系列】【转载】十几个Mac实用工具
  17. Echarts 简单报表系列四:雷达图
  18. BZOJ.1879.[SDOI2009]Bill的挑战(状压DP)
  19. 早前阅读live555源码做的笔记
  20. Dubbo -- 系统学习 笔记 -- 入门

热门文章

  1. ElasticSearch 连载二 中文分词
  2. MaxTenuringThreshold与阈值的动态调整理论详解
  3. Herbert Schildt
  4. Thread.sleep()和Thread.currentThread().sleep()区别
  5. 【Java】聚合和组合的区别
  6. ajax向服务器发出get和post请求
  7. 2019牛客暑期多校训练营(第九场)The power of Fibonacci——循环节&&CRT
  8. [Angular] Using Pipe for function memoization
  9. javascript权威指南第17章 错误异常处理
  10. Spring security invalid-session-url 的坑(配了permitAll仍然跳转到登录页)