Browse Source

fix
手术未结束,不可推送数据

lifang 3 months ago
parent
commit
0ca5f9adf8

+ 10 - 6
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/oauth2/service/CurrentUserService.java

@@ -98,17 +98,21 @@ public class CurrentUserService {
         }
         SysTenantCommonVO tenant = tenantService.selectSysTenantById(LoginUserStrategy.tr.getTenantId());
         if(ObjectUtil.isNotNull(tenant)){
-            //用户所在租户拥有的权限
+            //租户管理员拥有所有权限
             if(StrUtil.equals(tenant.getUsername(),LoginUserStrategy.tr.getCurrentUsername()))
                 return tenantMenus.stream().filter(menu -> !StrUtil.equals(MenuEnum.button.name(), menu.getMenuType()))
                         .map(menuService::convertToRoute)
                         .collect(Collectors.toList());
         }
-        //菜单加按钮
-        List<SysMenuDTO> pageMenuList = tenantMenus
-                .stream()
-                .filter(menu -> !StrUtil.equals(MenuEnum.button.name(), menu.getMenuType()))
-                .collect(Collectors.toList());
+        List<SysRoleDTO> roles = userRoleService.findAllRolesByUserId(currentUserId);
+        List<SysMenuDTO> pageMenuList =new ArrayList<>();
+        if(CollectionUtil.isEmpty(roles)){
+            //未分配角色时,默认全部菜单都可以看见
+            pageMenuList = tenantMenus
+                    .stream()
+                    .filter(menu -> !StrUtil.equals(MenuEnum.button.name(), menu.getMenuType()))
+                    .collect(Collectors.toList());
+        }
 
         Collection<SysMenuDTO> allMenus = CollectionUtil.intersection(tenantMenus, roleMenus);
         allMenus.addAll(pageMenuList);