文章目录
动态菜单分析
(1)分析
不同的用户进入主页,看到的左侧菜单是不同的
其实,根据用户等级与RBAC查询用户的权限
(2)等级与模块对应关系(user\degree)
- degree=0
- degree=1
- degree=其他
使用5张表来查询
sql语句查询不同用户的模块权限
#三种用户
# 平台管理员 -Sass菜单 degree==0
# 企业管理员 -除了Sass菜单之外的所有 degree==1
# 用户 查RBAC
select * from pe_user where degree=0;
# 0作为belong查模块表
select * from ss_module where belong=0
#查询企业管理员的用户
select * from pe_user where degree=1;
select * from ss_module where belong=1
#查询不在0(SaaS管理员) 1(企业管理员)之间的所有用户,其他用户(非管理员)
select * from pe_user where degree not in(0,1);
# 通过id查询普通用户的模块权限(查询RBAC五张表)
# 其实只需要连接3个表就可以查询数据,用户user查询角色包role,角色查模块,就可以获取到用的模块权限
# 先根据用户user表查有什么角色role,再根据role角色表查有什么模块module,用户角色表,角色模块表
# 显示内连接
# distinct 去重
select distinct m.* from
pe_role_user ru
inner join pe_role_module rm
on ru.role_id=rm.role_id
inner join ss_module m
on m.module_id=rm.module_id
where ru.user_id='0f1f71fe-fe7c-4a44-a952-4f08bf5aa990'
order by module_id asc;
动态菜单实现
(1)TestModuleService.java
src\test\java\com\smp\service\company
@Test
public void test08(){
User user=new User();