Просмотр исходного кода

有超级管理员角色的用户也看全部菜单

yzc 11 месяцев назад
Родитель
Сommit
3ba293cc0d

+ 2 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java

@@ -15,6 +15,7 @@ import com.ruoyi.system.mapper.SysMenuMapper;
 import com.ruoyi.system.mapper.SysRoleMapper;
 import com.ruoyi.system.mapper.SysRoleMenuMapper;
 import com.ruoyi.system.service.ISysMenuService;
+import com.ruoyi.system.utils.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -115,7 +116,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
     @Override
     public List<SysMenu> selectMenuTreeByUserId(Long userId) {
         List<SysMenu> menus = null;
-        if (SecurityUtils.isAdmin(userId)) {
+        if (SecurityUtils.isAdmin(userId) || UserUtil.getUserRoleIds(userId).contains(1L)) {
             menus = menuMapper.selectMenuTreeAll();
         } else {
             menus = menuMapper.selectMenuTreeByUserId(userId);

+ 7 - 2
ruoyi-system/src/main/java/com/ruoyi/system/utils/UserUtil.java

@@ -39,7 +39,7 @@ public class UserUtil {
         return getListByIds(idList).stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getNickName));
     }
 
-    public static String getNickNameById(Long userId){
+    public static String getNickNameById(Long userId) {
         return getNickNameMapByIds(Collections.singletonList(userId)).get(userId);
     }
 
@@ -107,9 +107,14 @@ public class UserUtil {
      * 获取用户角色Key列表
      */
     public static List<String> getUserRoleKeys(Long userId) {
-        return getUserRoles(userId).stream().map(SysRole::getRoleKey).collect(Collectors.toList());
+        return getUserRoles(userId).stream().map(SysRole::getRoleKey).distinct().collect(Collectors.toList());
     }
 
+    public static List<Long> getUserRoleIds(Long userId) {
+        return getUserRoles(userId).stream().map(SysRole::getRoleId).distinct().collect(Collectors.toList());
+    }
+
+
     /**
      * 获取用户角色以及子角色
      */