多租户产品包和角色权限配置时,菜单不显示bug反馈

Blade 未结 2 493
gtfhao
gtfhao 2023-10-13 10:09

一、该问题的重现步骤是什么?

1. 超管登录,新增租户,新建租户产品包⇒设置菜单(工作台通知公告)

2. 给租户admin角色配置菜单(工作台→通知公告查看)

3.退出登录,用租户admin登录,菜单显示无,并没有显示配置的菜单(工作台→通知公告查看

二、你期待的结果是什么?实际看到的又是什么?

期待结果:租户admin登录,正常显示菜单:工作台→通知公告查看

实际结果:租户admin登录,工作台菜单显示无

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex-boot 3.2.0、企业版、 Windows11

四、请提供详细的错误堆栈信息,这很重要。

调查原因:参数menu有一条角色菜单(配置的通知公告的查看按钮),但是租户产品包里没有按钮配置,只有菜单,固(menu.stream().filter(x -> menuIds.contains(x.getId())).collect(Collectors.toList());)的时候,menu没有包含的,返回空,所以菜单也显示不出来了。

/**
* 租户菜单权限自定义筛选
*/
private List<Menu> tenantPackageMenu(List<Menu> menu) {
   TenantPackage tenantPackage = SysCache.getTenantPackage(AuthUtil.getTenantId());
   if (Func.isNotEmpty(tenantPackage) && tenantPackage.getId() > 0L) {
      List<Long> menuIds = Func.toLongList(tenantPackage.getMenuId());
      menu = menu.stream().filter(x -> menuIds.contains(x.getId())).collect(Collectors.toList());
   }
   return menu;
}

五、若有更多详细信息,请在下面提供。

2条回答
  •  admin
    admin (楼主)
    2023-10-13 19:01

    好的我们先记录一下

    作者追问:2023-10-13 19:01

    提供下解决思路吧。

    我这边看有2种解决办法:

    1. 前端设置角色菜单时,把选中和半选中的都传递过去

    2. 后端递归父级菜单

    看还有没有更好的解决办法?

提交回复