超级管理员,顶部菜单,bug

Blade 未结 1 1291
noday
noday 2019-11-05 14:53

设置顶部菜单后,如果超级管理员的角色没有全部菜单权限,那么当超级管理员点顶部菜单的时候,查询的菜单就是缺失的

代码

 public List routes(String roleId, Long topMenuId) {
  if (StringUtil.isBlank(roleId)) {
   return null;
  }
  List allMenus = baseMapper.allMenu();
  List roleMenus = (SecureUtil.isAdministrator() && Func.isEmpty(topMenuId)) ? allMenus : baseMapper.roleMenu(Func.toLongList(roleId), topMenuId);
  return buildRoutes(allMenus, roleMenus);

由于topMenuId参数有值,逻辑就会进入

baseMapper.roleMenu(Func.toLongList(roleId), topMenuId)

这里是按角色查的,而超级管理员可能没分配什么菜单,所以就会查不到

1条回答
  •  admin
    admin (楼主)
    2019-11-06 18:09

    这个不是bug,业务逻辑是这样的:只有当前角色为超级管理员并且没有点击顶部菜单的时候,才会显示所有菜单。否则会按照正常的角色配置+顶部菜单配置进行菜单的显示

    image.png

    0 讨论(0)
提交回复