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) {