判定用户是否管理员:考虑是否分配了管理员角色

This commit is contained in:
40780 2020-06-30 11:51:44 +08:00
parent 868aed4079
commit 3ae86f9465
5 changed files with 40 additions and 39 deletions

View File

@ -20,6 +20,7 @@ import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.util.ShiroUtils;
import com.ruoyi.system.domain.SysMenu; import com.ruoyi.system.domain.SysMenu;
import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.domain.SysRole;
import com.ruoyi.system.domain.SysUser;
import com.ruoyi.system.service.ISysMenuService; import com.ruoyi.system.service.ISysMenuService;
/** /**
@ -48,8 +49,8 @@ public class SysMenuController extends BaseController
@ResponseBody @ResponseBody
public List<SysMenu> list(SysMenu menu) public List<SysMenu> list(SysMenu menu)
{ {
Long userId = ShiroUtils.getUserId(); SysUser user = ShiroUtils.getSysUser();
List<SysMenu> menuList = menuService.selectMenuList(menu, userId); List<SysMenu> menuList = menuService.selectMenuList(menu, user);
return menuList; return menuList;
} }
@ -167,8 +168,8 @@ public class SysMenuController extends BaseController
@ResponseBody @ResponseBody
public List<Ztree> roleMenuTreeData(SysRole role) public List<Ztree> roleMenuTreeData(SysRole role)
{ {
Long userId = ShiroUtils.getUserId(); SysUser user = ShiroUtils.getSysUser();
List<Ztree> ztrees = menuService.roleMenuTreeData(role, userId); List<Ztree> ztrees = menuService.roleMenuTreeData(role, user);
return ztrees; return ztrees;
} }
@ -179,8 +180,8 @@ public class SysMenuController extends BaseController
@ResponseBody @ResponseBody
public List<Ztree> menuTreeData() public List<Ztree> menuTreeData()
{ {
Long userId = ShiroUtils.getUserId(); SysUser user = ShiroUtils.getSysUser();
List<Ztree> ztrees = menuService.menuTreeData(userId); List<Ztree> ztrees = menuService.menuTreeData(user);
return ztrees; return ztrees;
} }

View File

@ -147,8 +147,9 @@ public class SysUserController extends BaseController
public String edit(@PathVariable("userId") Long userId, ModelMap mmap) public String edit(@PathVariable("userId") Long userId, ModelMap mmap)
{ {
List<SysRole> roles = roleService.selectRolesByUserId(userId); List<SysRole> roles = roleService.selectRolesByUserId(userId);
mmap.put("user", userService.selectUserById(userId)); SysUser user = userService.selectUserById(userId);
mmap.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); 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)); mmap.put("posts", postService.selectPostsByUserId(userId));
return prefix + "/edit"; return prefix + "/edit";
} }

View File

@ -116,15 +116,14 @@ public class SysUser extends BaseEntity
this.userId = userId; this.userId = userId;
} }
public boolean isAdmin() public boolean isAdmin() {
{ // 是否分配了管理员角色
return isAdmin(this.userId); List<SysRole> roles = this.getRoles();
} if (roles != null && roles.stream().allMatch(r -> r.isAdmin())) {
return true;
public static boolean isAdmin(Long userId) }
{ return this.getUserId() != null && this.getUserId() == 1L;
return userId != null && 1L == userId; }
}
public Long getDeptId() public Long getDeptId()
{ {

View File

@ -27,18 +27,18 @@ public interface ISysMenuService
* 查询系统菜单列表 * 查询系统菜单列表
* *
* @param menu 菜单信息 * @param menu 菜单信息
* @param userId 用户ID * @param user 用户
* @return 菜单列表 * @return 菜单列表
*/ */
public List<SysMenu> selectMenuList(SysMenu menu, Long userId); public List<SysMenu> selectMenuList(SysMenu menu, SysUser user);
/** /**
* 查询菜单集合 * 查询菜单集合
* *
* @param userId 用户ID * @param user 用户
* @return 所有菜单信息 * @return 所有菜单信息
*/ */
public List<SysMenu> selectMenuAll(Long userId); public List<SysMenu> selectMenuAll(SysUser user);
/** /**
* 根据用户ID查询权限 * 根据用户ID查询权限
@ -52,26 +52,26 @@ public interface ISysMenuService
* 根据角色ID查询菜单 * 根据角色ID查询菜单
* *
* @param role 角色对象 * @param role 角色对象
* @param userId 用户ID * @param user 用户
* @return 菜单列表 * @return 菜单列表
*/ */
public List<Ztree> roleMenuTreeData(SysRole role, Long userId); public List<Ztree> roleMenuTreeData(SysRole role, SysUser user);
/** /**
* 查询所有菜单信息 * 查询所有菜单信息
* *
* @param userId 用户ID * @param user 用户
* @return 菜单列表 * @return 菜单列表
*/ */
public List<Ztree> menuTreeData(Long userId); public List<Ztree> menuTreeData(SysUser user);
/** /**
* 查询系统所有权限 * 查询系统所有权限
* *
* @param userId 用户ID * @param user 用户
* @return 权限列表 * @return 权限列表
*/ */
public Map<String, String> selectPermsAll(Long userId); public Map<String, String> selectPermsAll(SysUser user);
/** /**
* 删除菜单管理信息 * 删除菜单管理信息

View File

@ -65,16 +65,16 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 所有菜单信息 * @return 所有菜单信息
*/ */
@Override @Override
public List<SysMenu> selectMenuList(SysMenu menu, Long userId) public List<SysMenu> selectMenuList(SysMenu menu, SysUser user)
{ {
List<SysMenu> menuList = null; List<SysMenu> menuList = null;
if (SysUser.isAdmin(userId)) if (user.isAdmin())
{ {
menuList = menuMapper.selectMenuList(menu); menuList = menuMapper.selectMenuList(menu);
} }
else else
{ {
menu.getParams().put("userId", userId); menu.getParams().put("userId", user.getUserId());
menuList = menuMapper.selectMenuListByUserId(menu); menuList = menuMapper.selectMenuListByUserId(menu);
} }
return menuList; return menuList;
@ -86,16 +86,16 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 所有菜单信息 * @return 所有菜单信息
*/ */
@Override @Override
public List<SysMenu> selectMenuAll(Long userId) public List<SysMenu> selectMenuAll(SysUser user)
{ {
List<SysMenu> menuList = null; List<SysMenu> menuList = null;
if (SysUser.isAdmin(userId)) if (user.isAdmin())
{ {
menuList = menuMapper.selectMenuAll(); menuList = menuMapper.selectMenuAll();
} }
else else
{ {
menuList = menuMapper.selectMenuAllByUserId(userId); menuList = menuMapper.selectMenuAllByUserId(user.getUserId());
} }
return menuList; return menuList;
} }
@ -128,11 +128,11 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 菜单列表 * @return 菜单列表
*/ */
@Override @Override
public List<Ztree> roleMenuTreeData(SysRole role, Long userId) public List<Ztree> roleMenuTreeData(SysRole role, SysUser user)
{ {
Long roleId = role.getRoleId(); Long roleId = role.getRoleId();
List<Ztree> ztrees = new ArrayList<Ztree>(); List<Ztree> ztrees = new ArrayList<Ztree>();
List<SysMenu> menuList = selectMenuAll(userId); List<SysMenu> menuList = selectMenuAll(user);
if (StringUtils.isNotNull(roleId)) if (StringUtils.isNotNull(roleId))
{ {
List<String> roleMenuList = menuMapper.selectMenuTree(roleId); List<String> roleMenuList = menuMapper.selectMenuTree(roleId);
@ -151,9 +151,9 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 菜单列表 * @return 菜单列表
*/ */
@Override @Override
public List<Ztree> menuTreeData(Long userId) public List<Ztree> menuTreeData(SysUser user)
{ {
List<SysMenu> menuList = selectMenuAll(userId); List<SysMenu> menuList = selectMenuAll(user);
List<Ztree> ztrees = initZtree(menuList); List<Ztree> ztrees = initZtree(menuList);
return ztrees; return ztrees;
} }
@ -164,10 +164,10 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 权限列表 * @return 权限列表
*/ */
@Override @Override
public LinkedHashMap<String, String> selectPermsAll(Long userId) public LinkedHashMap<String, String> selectPermsAll(SysUser user)
{ {
LinkedHashMap<String, String> section = new LinkedHashMap<>(); LinkedHashMap<String, String> section = new LinkedHashMap<>();
List<SysMenu> permissions = selectMenuAll(userId); List<SysMenu> permissions = selectMenuAll(user);
if (StringUtils.isNotEmpty(permissions)) if (StringUtils.isNotEmpty(permissions))
{ {
for (SysMenu menu : permissions) for (SysMenu menu : permissions)