mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	update 优化 是否为管理员的判断
This commit is contained in:
		@@ -16,6 +16,7 @@ import com.ruoyi.common.core.domain.entity.SysUser;
 | 
				
			|||||||
import com.ruoyi.common.core.page.TableDataInfo;
 | 
					import com.ruoyi.common.core.page.TableDataInfo;
 | 
				
			||||||
import com.ruoyi.common.enums.BusinessType;
 | 
					import com.ruoyi.common.enums.BusinessType;
 | 
				
			||||||
import com.ruoyi.common.excel.ExcelResult;
 | 
					import com.ruoyi.common.excel.ExcelResult;
 | 
				
			||||||
 | 
					import com.ruoyi.common.helper.LoginHelper;
 | 
				
			||||||
import com.ruoyi.common.utils.StringUtils;
 | 
					import com.ruoyi.common.utils.StringUtils;
 | 
				
			||||||
import com.ruoyi.common.utils.poi.ExcelUtil;
 | 
					import com.ruoyi.common.utils.poi.ExcelUtil;
 | 
				
			||||||
import com.ruoyi.system.domain.vo.SysUserExportVo;
 | 
					import com.ruoyi.system.domain.vo.SysUserExportVo;
 | 
				
			||||||
@@ -109,7 +110,7 @@ public class SysUserController extends BaseController {
 | 
				
			|||||||
        userService.checkUserDataScope(userId);
 | 
					        userService.checkUserDataScope(userId);
 | 
				
			||||||
        Map<String, Object> ajax = new HashMap<>();
 | 
					        Map<String, Object> ajax = new HashMap<>();
 | 
				
			||||||
        List<SysRole> roles = roleService.selectRoleAll();
 | 
					        List<SysRole> roles = roleService.selectRoleAll();
 | 
				
			||||||
        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
 | 
					        ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
 | 
				
			||||||
        ajax.put("posts", postService.selectPostAll());
 | 
					        ajax.put("posts", postService.selectPostAll());
 | 
				
			||||||
        if (ObjectUtil.isNotNull(userId)) {
 | 
					        if (ObjectUtil.isNotNull(userId)) {
 | 
				
			||||||
            SysUser sysUser = userService.selectUserById(userId);
 | 
					            SysUser sysUser = userService.selectUserById(userId);
 | 
				
			||||||
@@ -213,7 +214,7 @@ public class SysUserController extends BaseController {
 | 
				
			|||||||
        List<SysRole> roles = roleService.selectRolesByUserId(userId);
 | 
					        List<SysRole> roles = roleService.selectRolesByUserId(userId);
 | 
				
			||||||
        Map<String, Object> ajax = new HashMap<>();
 | 
					        Map<String, Object> ajax = new HashMap<>();
 | 
				
			||||||
        ajax.put("user", user);
 | 
					        ajax.put("user", user);
 | 
				
			||||||
        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
 | 
					        ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
 | 
				
			||||||
        return R.ok(ajax);
 | 
					        return R.ok(ajax);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -109,4 +109,10 @@ public interface UserConstants {
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    int PASSWORD_MIN_LENGTH = 5;
 | 
					    int PASSWORD_MIN_LENGTH = 5;
 | 
				
			||||||
    int PASSWORD_MAX_LENGTH = 20;
 | 
					    int PASSWORD_MAX_LENGTH = 20;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 管理员ID
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    Long ADMIN_ID = 1L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 | 
				
			|||||||
import com.baomidou.mybatisplus.annotation.TableLogic;
 | 
					import com.baomidou.mybatisplus.annotation.TableLogic;
 | 
				
			||||||
import com.baomidou.mybatisplus.annotation.TableName;
 | 
					import com.baomidou.mybatisplus.annotation.TableName;
 | 
				
			||||||
import com.ruoyi.common.annotation.ExcelDictFormat;
 | 
					import com.ruoyi.common.annotation.ExcelDictFormat;
 | 
				
			||||||
 | 
					import com.ruoyi.common.constant.UserConstants;
 | 
				
			||||||
import com.ruoyi.common.convert.ExcelDictConvert;
 | 
					import com.ruoyi.common.convert.ExcelDictConvert;
 | 
				
			||||||
import com.ruoyi.common.core.domain.BaseEntity;
 | 
					import com.ruoyi.common.core.domain.BaseEntity;
 | 
				
			||||||
import io.swagger.annotations.ApiModelProperty;
 | 
					import io.swagger.annotations.ApiModelProperty;
 | 
				
			||||||
@@ -132,11 +133,7 @@ public class SysRole extends BaseEntity {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @ApiModelProperty(value = "是否管理员")
 | 
					    @ApiModelProperty(value = "是否管理员")
 | 
				
			||||||
    public boolean isAdmin() {
 | 
					    public boolean isAdmin() {
 | 
				
			||||||
        return isAdmin(this.roleId);
 | 
					        return UserConstants.ADMIN_ID.equals(this.roleId);
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public static boolean isAdmin(Long roleId) {
 | 
					 | 
				
			||||||
        return roleId != null && 1L == roleId;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*;
 | 
				
			|||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
 | 
					import com.fasterxml.jackson.annotation.JsonIgnore;
 | 
				
			||||||
import com.fasterxml.jackson.annotation.JsonProperty;
 | 
					import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			||||||
import com.ruoyi.common.annotation.Sensitive;
 | 
					import com.ruoyi.common.annotation.Sensitive;
 | 
				
			||||||
 | 
					import com.ruoyi.common.constant.UserConstants;
 | 
				
			||||||
import com.ruoyi.common.core.domain.BaseEntity;
 | 
					import com.ruoyi.common.core.domain.BaseEntity;
 | 
				
			||||||
import com.ruoyi.common.enums.SensitiveStrategy;
 | 
					import com.ruoyi.common.enums.SensitiveStrategy;
 | 
				
			||||||
import com.ruoyi.common.xss.Xss;
 | 
					import com.ruoyi.common.xss.Xss;
 | 
				
			||||||
@@ -185,11 +186,7 @@ public class SysUser extends BaseEntity {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @ApiModelProperty(value = "是否管理员")
 | 
					    @ApiModelProperty(value = "是否管理员")
 | 
				
			||||||
    public boolean isAdmin() {
 | 
					    public boolean isAdmin() {
 | 
				
			||||||
        return isAdmin(this.userId);
 | 
					        return UserConstants.ADMIN_ID.equals(this.userId);
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public static boolean isAdmin(Long userId) {
 | 
					 | 
				
			||||||
        return userId != null && 1L == userId;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,6 +2,7 @@ package com.ruoyi.common.helper;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import cn.dev33.satoken.stp.StpUtil;
 | 
					import cn.dev33.satoken.stp.StpUtil;
 | 
				
			||||||
import cn.hutool.core.util.ObjectUtil;
 | 
					import cn.hutool.core.util.ObjectUtil;
 | 
				
			||||||
 | 
					import com.ruoyi.common.constant.UserConstants;
 | 
				
			||||||
import com.ruoyi.common.core.domain.model.LoginUser;
 | 
					import com.ruoyi.common.core.domain.model.LoginUser;
 | 
				
			||||||
import com.ruoyi.common.enums.DeviceType;
 | 
					import com.ruoyi.common.enums.DeviceType;
 | 
				
			||||||
import com.ruoyi.common.enums.UserType;
 | 
					import com.ruoyi.common.enums.UserType;
 | 
				
			||||||
@@ -125,12 +126,11 @@ public class LoginHelper {
 | 
				
			|||||||
     * @return 结果
 | 
					     * @return 结果
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static boolean isAdmin(Long userId) {
 | 
					    public static boolean isAdmin(Long userId) {
 | 
				
			||||||
        return userId != null && 1L == userId;
 | 
					        return UserConstants.ADMIN_ID.equals(userId);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static boolean isAdmin() {
 | 
					    public static boolean isAdmin() {
 | 
				
			||||||
        Long userId = getUserId();
 | 
					        return isAdmin(getUserId());
 | 
				
			||||||
        return userId != null && 1L == userId;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -79,7 +79,7 @@ public class PlusDataPermissionHandler {
 | 
				
			|||||||
            DataPermissionHelper.setVariable("user", currentUser);
 | 
					            DataPermissionHelper.setVariable("user", currentUser);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        // 如果是超级管理员,则不过滤数据
 | 
					        // 如果是超级管理员,则不过滤数据
 | 
				
			||||||
        if (ObjectUtil.isNull(currentUser) || LoginHelper.isAdmin(currentUser.getUserId())) {
 | 
					        if (LoginHelper.isAdmin()) {
 | 
				
			||||||
            return where;
 | 
					            return where;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        String dataFilterSql = buildDataFilter(dataColumns, isSelect);
 | 
					        String dataFilterSql = buildDataFilter(dataColumns, isSelect);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -152,7 +152,7 @@ public class SysDeptServiceImpl implements ISysDeptService {
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void checkDeptDataScope(Long deptId) {
 | 
					    public void checkDeptDataScope(Long deptId) {
 | 
				
			||||||
        if (!SysUser.isAdmin(LoginHelper.getUserId())) {
 | 
					        if (!LoginHelper.isAdmin()) {
 | 
				
			||||||
            SysDept dept = new SysDept();
 | 
					            SysDept dept = new SysDept();
 | 
				
			||||||
            dept.setDeptId(deptId);
 | 
					            dept.setDeptId(deptId);
 | 
				
			||||||
            List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
 | 
					            List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,6 @@ import com.ruoyi.common.constant.Constants;
 | 
				
			|||||||
import com.ruoyi.common.constant.UserConstants;
 | 
					import com.ruoyi.common.constant.UserConstants;
 | 
				
			||||||
import com.ruoyi.common.core.domain.entity.SysMenu;
 | 
					import com.ruoyi.common.core.domain.entity.SysMenu;
 | 
				
			||||||
import com.ruoyi.common.core.domain.entity.SysRole;
 | 
					import com.ruoyi.common.core.domain.entity.SysRole;
 | 
				
			||||||
import com.ruoyi.common.core.domain.entity.SysUser;
 | 
					 | 
				
			||||||
import com.ruoyi.common.helper.LoginHelper;
 | 
					import com.ruoyi.common.helper.LoginHelper;
 | 
				
			||||||
import com.ruoyi.common.utils.StringUtils;
 | 
					import com.ruoyi.common.utils.StringUtils;
 | 
				
			||||||
import com.ruoyi.common.utils.TreeBuildUtils;
 | 
					import com.ruoyi.common.utils.TreeBuildUtils;
 | 
				
			||||||
@@ -58,7 +57,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
 | 
				
			|||||||
    public List<SysMenu> selectMenuList(SysMenu menu, Long userId) {
 | 
					    public List<SysMenu> selectMenuList(SysMenu menu, Long userId) {
 | 
				
			||||||
        List<SysMenu> menuList = null;
 | 
					        List<SysMenu> menuList = null;
 | 
				
			||||||
        // 管理员显示所有菜单信息
 | 
					        // 管理员显示所有菜单信息
 | 
				
			||||||
        if (SysUser.isAdmin(userId)) {
 | 
					        if (LoginHelper.isAdmin(userId)) {
 | 
				
			||||||
            menuList = baseMapper.selectList(new LambdaQueryWrapper<SysMenu>()
 | 
					            menuList = baseMapper.selectList(new LambdaQueryWrapper<SysMenu>()
 | 
				
			||||||
                .like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName())
 | 
					                .like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName())
 | 
				
			||||||
                .eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible())
 | 
					                .eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible())
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
				
			|||||||
import com.ruoyi.common.constant.UserConstants;
 | 
					import com.ruoyi.common.constant.UserConstants;
 | 
				
			||||||
import com.ruoyi.common.core.domain.PageQuery;
 | 
					import com.ruoyi.common.core.domain.PageQuery;
 | 
				
			||||||
import com.ruoyi.common.core.domain.entity.SysRole;
 | 
					import com.ruoyi.common.core.domain.entity.SysRole;
 | 
				
			||||||
import com.ruoyi.common.core.domain.entity.SysUser;
 | 
					 | 
				
			||||||
import com.ruoyi.common.core.page.TableDataInfo;
 | 
					import com.ruoyi.common.core.page.TableDataInfo;
 | 
				
			||||||
import com.ruoyi.common.exception.ServiceException;
 | 
					import com.ruoyi.common.exception.ServiceException;
 | 
				
			||||||
import com.ruoyi.common.helper.LoginHelper;
 | 
					import com.ruoyi.common.helper.LoginHelper;
 | 
				
			||||||
@@ -181,7 +180,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void checkRoleDataScope(Long roleId) {
 | 
					    public void checkRoleDataScope(Long roleId) {
 | 
				
			||||||
        if (!SysUser.isAdmin(LoginHelper.getUserId())) {
 | 
					        if (!LoginHelper.isAdmin()) {
 | 
				
			||||||
            SysRole role = new SysRole();
 | 
					            SysRole role = new SysRole();
 | 
				
			||||||
            role.setRoleId(roleId);
 | 
					            role.setRoleId(roleId);
 | 
				
			||||||
            List<SysRole> roles = SpringUtils.getAopProxy(this).selectRoleList(role);
 | 
					            List<SysRole> roles = SpringUtils.getAopProxy(this).selectRoleList(role);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -206,7 +206,7 @@ public class SysUserServiceImpl implements ISysUserService {
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void checkUserDataScope(Long userId) {
 | 
					    public void checkUserDataScope(Long userId) {
 | 
				
			||||||
        if (!SysUser.isAdmin(LoginHelper.getUserId())) {
 | 
					        if (!LoginHelper.isAdmin()) {
 | 
				
			||||||
            SysUser user = new SysUser();
 | 
					            SysUser user = new SysUser();
 | 
				
			||||||
            user.setUserId(userId);
 | 
					            user.setUserId(userId);
 | 
				
			||||||
            List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);
 | 
					            List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user