fix: 数据权限调整已知问题修复
This commit is contained in:
@@ -355,9 +355,9 @@ CREATE TABLE `sys_user` (
|
|||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of sys_user
|
-- Records of sys_user
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
INSERT INTO `sys_user` VALUES (1, 'root', '有来技术', 0, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', NULL, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345677', 1, 'youlaitech@163.com', now(), NULL, now(), NULL, 0,NULL);
|
INSERT INTO `sys_user` VALUES (1, 'root', '有来技术', 0, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', NULL, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345677', 1, 'youlaitech@163.com', now(), NULL, now(), NULL, 0);
|
||||||
INSERT INTO `sys_user` VALUES (2, 'admin', '系统管理员', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 1, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345678', 1, 'youlaitech@163.com', now(), NULL, now(), NULL, 0,NULL);
|
INSERT INTO `sys_user` VALUES (2, 'admin', '系统管理员', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 1, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345678', 1, 'youlaitech@163.com', now(), NULL, now(), NULL, 0);
|
||||||
INSERT INTO `sys_user` VALUES (3, 'test', '测试小用户', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 3, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345679', 1, 'youlaitech@163.com', now(), NULL, now(), NULL, 0,NULL);
|
INSERT INTO `sys_user` VALUES (3, 'test', '测试小用户', 1, '$2a$10$xVWsNOhHrCxh5UbpCE7/HuJ.PAOKcYAqRxD2CO2nVnJS.IAXkr5aq', 3, 'https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif', '18812345679', 1, 'youlaitech@163.com', now(), NULL, now(), NULL, 0);
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for sys_user_role
|
-- Table structure for sys_user_role
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
package com.youlai.boot.platform.websocket.service;
|
package com.youlai.boot.platform.websocket.service;
|
||||||
|
|
||||||
|
import com.youlai.boot.platform.websocket.dto.OnlineUserDTO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* WebSocket服务接口
|
* WebSocket服务接口
|
||||||
* <p>
|
* <p>
|
||||||
@@ -43,4 +47,11 @@ public interface WebSocketService {
|
|||||||
* @param message 通知消息内容
|
* @param message 通知消息内容
|
||||||
*/
|
*/
|
||||||
void sendNotification(String username, Object message);
|
void sendNotification(String username, Object message);
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* 获取在线用户列表
|
||||||
|
*
|
||||||
|
* @return 在线用户信息列表
|
||||||
|
*/
|
||||||
|
List<OnlineUserDTO> getOnlineUsers();
|
||||||
|
}
|
||||||
|
|||||||
@@ -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.EqualsTo;
|
||||||
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
|
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
|
||||||
import net.sf.jsqlparser.expression.operators.relational.InExpression;
|
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.Column;
|
||||||
import net.sf.jsqlparser.schema.Table;
|
import net.sf.jsqlparser.schema.Table;
|
||||||
import net.sf.jsqlparser.statement.select.PlainSelect;
|
import net.sf.jsqlparser.statement.select.PlainSelect;
|
||||||
import net.sf.jsqlparser.statement.select.Select;
|
import net.sf.jsqlparser.statement.select.ParenthesedSelect;
|
||||||
import net.sf.jsqlparser.statement.select.SubSelect;
|
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.List;
|
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) {
|
if (where == null) {
|
||||||
return finalExpression;
|
return finalExpression;
|
||||||
@@ -250,8 +250,8 @@ public class MyDataPermissionHandler implements DataPermissionHandler {
|
|||||||
subSelectBody.setWhere(whereClause);
|
subSelectBody.setWhere(whereClause);
|
||||||
|
|
||||||
// 构建子查询
|
// 构建子查询
|
||||||
SubSelect subSelect = new SubSelect();
|
ParenthesedSelect subSelect = new ParenthesedSelect();
|
||||||
subSelect.setSelectBody(subSelectBody);
|
subSelect.setSelect(subSelectBody);
|
||||||
|
|
||||||
// 构建 IN 表达式
|
// 构建 IN 表达式
|
||||||
return new InExpression(deptColumn, subSelect);
|
return new InExpression(deptColumn, subSelect);
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.youlai.boot.security.model;
|
|||||||
|
|
||||||
import org.springframework.security.authentication.AbstractAuthenticationToken;
|
import org.springframework.security.authentication.AbstractAuthenticationToken;
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
|
import org.springframework.security.core.authority.AuthorityUtils;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -48,7 +49,7 @@ public class SmsAuthenticationToken extends AbstractAuthenticationToken {
|
|||||||
* @param verifyCode 短信验证码
|
* @param verifyCode 短信验证码
|
||||||
*/
|
*/
|
||||||
public SmsAuthenticationToken(String mobile, String verifyCode) {
|
public SmsAuthenticationToken(String mobile, String verifyCode) {
|
||||||
super(null);
|
super(AuthorityUtils.NO_AUTHORITIES);
|
||||||
this.principal = mobile;
|
this.principal = mobile;
|
||||||
this.credentials = verifyCode;
|
this.credentials = verifyCode;
|
||||||
setAuthenticated(false);
|
setAuthenticated(false);
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.TimeUnit; // Import TimeUnit
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.youlai.boot.core.exception.BusinessException;
|
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.security.util.SecurityUtils;
|
||||||
import com.youlai.boot.system.converter.NoticeConverter;
|
import com.youlai.boot.system.converter.NoticeConverter;
|
||||||
import com.youlai.boot.system.enums.NoticePublishStatusEnum;
|
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()
|
Set<String> allOnlineUsers = webSocketService.getOnlineUsers().stream()
|
||||||
.map(dto -> dto.getUsername())
|
.map(OnlineUserDTO::getUsername)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
// 找出在线用户的通知接收者
|
// 找出在线用户的通知接收者
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.youlai.boot.common.enums.DataScopeEnum;
|
import com.youlai.boot.common.enums.DataScopeEnum;
|
||||||
import com.youlai.boot.core.exception.BusinessException;
|
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.converter.RoleConverter;
|
||||||
import com.youlai.boot.system.mapper.RoleMapper;
|
import com.youlai.boot.system.mapper.RoleMapper;
|
||||||
import com.youlai.boot.system.model.entity.Role;
|
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.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user