fix: 数据权限调整已知问题修复

This commit is contained in:
Ray.Hao
2026-02-13 09:09:16 +08:00
parent 4402571ab1
commit 8df1252ff8
7 changed files with 27 additions and 11 deletions

View File

@@ -1,5 +1,9 @@
package com.youlai.boot.platform.websocket.service;
import com.youlai.boot.platform.websocket.dto.OnlineUserDTO;
import java.util.List;
/**
* WebSocket服务接口
* <p>
@@ -43,4 +47,11 @@ public interface WebSocketService {
* @param message 通知消息内容
*/
void sendNotification(String username, Object message);
}
/**
* 获取在线用户列表
*
* @return 在线用户信息列表
*/
List<OnlineUserDTO> getOnlineUsers();
}

View File

@@ -16,11 +16,11 @@ import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
import net.sf.jsqlparser.expression.operators.relational.EqualsTo;
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
import net.sf.jsqlparser.expression.operators.relational.InExpression;
import net.sf.jsqlparser.expression.operators.relational.ParenthesedExpressionList;
import net.sf.jsqlparser.schema.Column;
import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.select.PlainSelect;
import net.sf.jsqlparser.statement.select.Select;
import net.sf.jsqlparser.statement.select.SubSelect;
import net.sf.jsqlparser.statement.select.ParenthesedSelect;
import java.lang.reflect.Method;
import java.util.List;
@@ -145,7 +145,7 @@ public class MyDataPermissionHandler implements DataPermissionHandler {
}
// 用括号包裹并集条件
Expression finalExpression = new Parenthesis(unionExpression);
Expression finalExpression = new ParenthesedExpressionList<>(unionExpression);
if (where == null) {
return finalExpression;
@@ -250,8 +250,8 @@ public class MyDataPermissionHandler implements DataPermissionHandler {
subSelectBody.setWhere(whereClause);
// 构建子查询
SubSelect subSelect = new SubSelect();
subSelect.setSelectBody(subSelectBody);
ParenthesedSelect subSelect = new ParenthesedSelect();
subSelect.setSelect(subSelectBody);
// 构建 IN 表达式
return new InExpression(deptColumn, subSelect);

View File

@@ -2,6 +2,7 @@ package com.youlai.boot.security.model;
import org.springframework.security.authentication.AbstractAuthenticationToken;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import java.io.Serial;
import java.util.Collection;
@@ -48,7 +49,7 @@ public class SmsAuthenticationToken extends AbstractAuthenticationToken {
* @param verifyCode 短信验证码
*/
public SmsAuthenticationToken(String mobile, String verifyCode) {
super(null);
super(AuthorityUtils.NO_AUTHORITIES);
this.principal = mobile;
this.credentials = verifyCode;
setAuthenticated(false);

View File

@@ -29,6 +29,7 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.TimeUnit; // Import TimeUnit
import java.util.stream.Collectors;
/**

View File

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.boot.core.exception.BusinessException;
import com.youlai.boot.platform.websocket.dto.OnlineUserDTO;
import com.youlai.boot.security.util.SecurityUtils;
import com.youlai.boot.system.converter.NoticeConverter;
import com.youlai.boot.system.enums.NoticePublishStatusEnum;
@@ -213,7 +214,7 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
// 获取在线用户名集合
Set<String> allOnlineUsers = webSocketService.getOnlineUsers().stream()
.map(dto -> dto.getUsername())
.map(OnlineUserDTO::getUsername)
.collect(Collectors.toSet());
// 找出在线用户的通知接收者

View File

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.youlai.boot.common.enums.DataScopeEnum;
import com.youlai.boot.core.exception.BusinessException;
import com.youlai.boot.security.model.RoleDataScope;
import com.youlai.boot.system.converter.RoleConverter;
import com.youlai.boot.system.mapper.RoleMapper;
import com.youlai.boot.system.model.entity.Role;
@@ -30,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**