fix: 完善查询用户数据权限

1、暂时对用户 Mapper 的 selectList 和 selectPage 进行了数据权限过滤;
2、由于对用户 Mapper 的 selectList 添加了数据权限过滤,请小心使用 selectOne 因为其底层使用的也是 selectList;
3、tips:如需在查询时进行数据权限过滤,尽量不要对 MyBatis Plus 原生查询进行过滤,而是单独声明一个查询方法来使用,以避免不需要过滤数据权限查询数据的场景受到较大影响。
This commit is contained in:
Charles7c 2023-06-30 00:38:25 +08:00
parent 8743ed14d9
commit 026247f677
2 changed files with 31 additions and 2 deletions

View File

@ -16,6 +16,16 @@
package top.charles7c.cnadmin.system.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import top.charles7c.cnadmin.common.annotation.DataPermission;
import top.charles7c.cnadmin.common.base.BaseMapper;
import top.charles7c.cnadmin.system.model.entity.UserDO;
@ -25,4 +35,23 @@ import top.charles7c.cnadmin.system.model.entity.UserDO;
* @author Charles7c
* @since 2022/12/22 21:47
*/
public interface UserMapper extends BaseMapper<UserDO> {}
public interface UserMapper extends BaseMapper<UserDO> {
@Override
@DataPermission
List<UserDO> selectList(@Param(Constants.WRAPPER) Wrapper<UserDO> queryWrapper);
@Override
@DataPermission
<P extends IPage<UserDO>> P selectPage(P page, @Param(Constants.WRAPPER) Wrapper<UserDO> queryWrapper);
/**
* 根据用户名查询
*
* @param username
* 用户名
* @return 用户信息
*/
@Select("SELECT * FROM `sys_user` WHERE `username` = #{username}")
UserDO selectByUsername(@Param("username") String username);
}

View File

@ -238,7 +238,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserVO,
@Override
public UserDO getByUsername(String username) {
return baseMapper.lambdaQuery().eq(UserDO::getUsername, username).one();
return baseMapper.selectByUsername(username);
}
@Override