五表权限:
表:用户表、角色表、权限表、用户角色中间表、角色权限中间表、权限详细表
1、用户页面:用户查询、用户新增、用户修改
2、用户赋角色:
查询角色:用户表、角色表、用户角色中间表 三表联查
注意:重复数据去重、group by group_concat(字段名)
新增角色:
业务:两表批量新增
注意:
1、先新增用户、再批量新增用户角色中间表
a、新增完之后返回用户id
mapper.xml里<insert>标签设置useGeneratedKeys="true" keyProperty="id"
b、insert into 表名(字段,字段...) values(值,值),(值,值),(值,值)...
修改角色:
用户角色中间表逻辑:先删除再批量新增
3、角色:角色查询
4、权限(树):权限树查询、【权限的新增、删除、修改】
5、角色赋权限:
1、权限的回显
a、TreeBean
private Boolean checked;//checked:表示该节点是否被选中
b、查询当前角色所拥有的权限:角色权限中间表的单表查询
查询所有的权限(返回的数据)
两个结果比较:id一致,有权限,checked=true
注意:
解决:父节点选中,所有的子节点都选中?判断是否有子节点,如果有不要给true
2、权限的修改
操作:角色权限中间表
逻辑:先删除、再批量新增、
6、登录不同用户看到左侧自己的权限节点:
表:树权限表-->角色权限中间表-->用户角色中间表
查询条件:加用户id
7、登录拦截器:
拦截器:1、自定义拦截器类 实现HandlerInterceptor接口重写方法
2、在spring-mvc.xml文件中配置拦截器使其生效
<!-- 拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 设置拦截的路径 -->
<mvc:mapping path="/**"/>
<!-- 设置不拦截的路径 -->
<mvc:exclude-mapping path=""/>
<bean class="拦截器类的路径"></bean>
</mvc:interceptor>
8、权限详细表的:查询、新增
权限表--权限详细表:一对多的关系
9、权限拦截器:
sql:查询树权限表的url+权限详细表的url
union / union all
完成的步骤:
1、用户:查询、新增、修改
2、用户赋角色:查询、修改、修改
3、角色:查询
4、权限:查询
5、角色赋权限:回显、修改
6、登录
7、不同用户看到左侧自己的权限节点
8、登录拦截器
9、权限详细表
10、权限拦截器