diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java index 3615c7599..a2bdd298f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java @@ -20,6 +20,7 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.system.domain.SysMenu; import com.ruoyi.system.domain.SysRole; +import com.ruoyi.system.domain.SysUser; import com.ruoyi.system.service.ISysMenuService; /** @@ -48,8 +49,8 @@ public class SysMenuController extends BaseController @ResponseBody public List list(SysMenu menu) { - Long userId = ShiroUtils.getUserId(); - List menuList = menuService.selectMenuList(menu, userId); + SysUser user = ShiroUtils.getSysUser(); + List menuList = menuService.selectMenuList(menu, user); return menuList; } @@ -167,8 +168,8 @@ public class SysMenuController extends BaseController @ResponseBody public List roleMenuTreeData(SysRole role) { - Long userId = ShiroUtils.getUserId(); - List ztrees = menuService.roleMenuTreeData(role, userId); + SysUser user = ShiroUtils.getSysUser(); + List ztrees = menuService.roleMenuTreeData(role, user); return ztrees; } @@ -179,8 +180,8 @@ public class SysMenuController extends BaseController @ResponseBody public List menuTreeData() { - Long userId = ShiroUtils.getUserId(); - List ztrees = menuService.menuTreeData(userId); + SysUser user = ShiroUtils.getSysUser(); + List ztrees = menuService.menuTreeData(user); return ztrees; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index c9431ec77..ba3f4b6b7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -147,8 +147,9 @@ public class SysUserController extends BaseController public String edit(@PathVariable("userId") Long userId, ModelMap mmap) { List roles = roleService.selectRolesByUserId(userId); - mmap.put("user", userService.selectUserById(userId)); - mmap.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + SysUser user = userService.selectUserById(userId); + mmap.put("user", user); + mmap.put("roles", user.isAdmin() ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); mmap.put("posts", postService.selectPostsByUserId(userId)); return prefix + "/edit"; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUser.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUser.java index 5d4332b3c..bd5d7f791 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUser.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUser.java @@ -116,15 +116,14 @@ public class SysUser extends BaseEntity this.userId = userId; } - public boolean isAdmin() - { - return isAdmin(this.userId); - } - - public static boolean isAdmin(Long userId) - { - return userId != null && 1L == userId; - } + public boolean isAdmin() { + // 是否分配了管理员角色 + List roles = this.getRoles(); + if (roles != null && roles.stream().allMatch(r -> r.isAdmin())) { + return true; + } + return this.getUserId() != null && this.getUserId() == 1L; + } public Long getDeptId() { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index 04cb8e091..1ec79d9cf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -27,18 +27,18 @@ public interface ISysMenuService * 查询系统菜单列表 * * @param menu 菜单信息 - * @param userId 用户ID + * @param user 用户 * @return 菜单列表 */ - public List selectMenuList(SysMenu menu, Long userId); + public List selectMenuList(SysMenu menu, SysUser user); /** * 查询菜单集合 * - * @param userId 用户ID + * @param user 用户 * @return 所有菜单信息 */ - public List selectMenuAll(Long userId); + public List selectMenuAll(SysUser user); /** * 根据用户ID查询权限 @@ -52,26 +52,26 @@ public interface ISysMenuService * 根据角色ID查询菜单 * * @param role 角色对象 - * @param userId 用户ID + * @param user 用户 * @return 菜单列表 */ - public List roleMenuTreeData(SysRole role, Long userId); + public List roleMenuTreeData(SysRole role, SysUser user); /** * 查询所有菜单信息 * - * @param userId 用户ID + * @param user 用户 * @return 菜单列表 */ - public List menuTreeData(Long userId); + public List menuTreeData(SysUser user); /** * 查询系统所有权限 * - * @param userId 用户ID + * @param user 用户 * @return 权限列表 */ - public Map selectPermsAll(Long userId); + public Map selectPermsAll(SysUser user); /** * 删除菜单管理信息 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index ce6a65e73..ebc2b1a65 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -65,16 +65,16 @@ public class SysMenuServiceImpl implements ISysMenuService * @return 所有菜单信息 */ @Override - public List selectMenuList(SysMenu menu, Long userId) + public List selectMenuList(SysMenu menu, SysUser user) { List menuList = null; - if (SysUser.isAdmin(userId)) + if (user.isAdmin()) { menuList = menuMapper.selectMenuList(menu); } else { - menu.getParams().put("userId", userId); + menu.getParams().put("userId", user.getUserId()); menuList = menuMapper.selectMenuListByUserId(menu); } return menuList; @@ -86,16 +86,16 @@ public class SysMenuServiceImpl implements ISysMenuService * @return 所有菜单信息 */ @Override - public List selectMenuAll(Long userId) + public List selectMenuAll(SysUser user) { List menuList = null; - if (SysUser.isAdmin(userId)) + if (user.isAdmin()) { menuList = menuMapper.selectMenuAll(); } else { - menuList = menuMapper.selectMenuAllByUserId(userId); + menuList = menuMapper.selectMenuAllByUserId(user.getUserId()); } return menuList; } @@ -128,11 +128,11 @@ public class SysMenuServiceImpl implements ISysMenuService * @return 菜单列表 */ @Override - public List roleMenuTreeData(SysRole role, Long userId) + public List roleMenuTreeData(SysRole role, SysUser user) { Long roleId = role.getRoleId(); List ztrees = new ArrayList(); - List menuList = selectMenuAll(userId); + List menuList = selectMenuAll(user); if (StringUtils.isNotNull(roleId)) { List roleMenuList = menuMapper.selectMenuTree(roleId); @@ -151,9 +151,9 @@ public class SysMenuServiceImpl implements ISysMenuService * @return 菜单列表 */ @Override - public List menuTreeData(Long userId) + public List menuTreeData(SysUser user) { - List menuList = selectMenuAll(userId); + List menuList = selectMenuAll(user); List ztrees = initZtree(menuList); return ztrees; } @@ -164,10 +164,10 @@ public class SysMenuServiceImpl implements ISysMenuService * @return 权限列表 */ @Override - public LinkedHashMap selectPermsAll(Long userId) + public LinkedHashMap selectPermsAll(SysUser user) { LinkedHashMap section = new LinkedHashMap<>(); - List permissions = selectMenuAll(userId); + List permissions = selectMenuAll(user); if (StringUtils.isNotEmpty(permissions)) { for (SysMenu menu : permissions)