From f720adc2a8860799da4f6dfab0a85ea3232598bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Thu, 6 Aug 2026 23:05:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(system):=20=E5=AE=9E=E7=8E=B0=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=94=A8=E6=88=B7=E6=89=80=E5=B1=9E=E7=A7=9F=E6=88=B7?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加判断当前登录用户切换到自身租户的直接放行逻辑 - 在租户切换成功时生成新的访问令牌并返回 - 异步保存登录记录,记录切换行为 - 解决注册即时场景下新超管租户切换验证不足的问题 --- .../gxwebsoft/common/system/controller/MainController.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/com/gxwebsoft/common/system/controller/MainController.java b/src/main/java/com/gxwebsoft/common/system/controller/MainController.java index e353ae0..2a380ad 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/MainController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/MainController.java @@ -1184,6 +1184,13 @@ public class MainController extends BaseController { if (current == null) { return fail("未登录或登录已过期", null); } + // 切换到当前登录用户所属租户(如注册成功后刷新权限令牌)直接放行: + // 注册即时场景下可切换租户列表校验可能未能命中刚创建的新超管,自己切自己一定合法。 + if (targetTenantId.equals(current.getTenantId())) { + String access_token = generateToken(current); + loginRecordService.saveAsync(current.getUsername(), LoginRecord.TYPE_LOGIN, null, current.getTenantId(), request); + return success("切换成功", new LoginResult(access_token, current)); + } // 校验目标租户在可切换范围内(与 switchableTenants 一致) User target = findSwitchableUser(current, targetTenantId); if (target == null) {