From 71c571f88476cfb6ca41c27a5b8112442beae9f0 Mon Sep 17 00:00:00 2001 From: chenxing Date: Tue, 13 Oct 2026 14:27:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=BA=94=E7=94=A8=E5=88=97=E8=A1=A8):=20sc?= =?UTF-8?q?hId=20=E9=9D=9E=E6=AD=A3=E6=95=B0=E5=93=A8=E5=85=B5=E8=BE=B9?= =?UTF-8?q?=E7=95=8C=E5=BD=92=E4=B8=80=E2=80=94=E2=80=94=E8=B6=85=E7=AE=A1?= =?UTF-8?q?=20GetUserApp=20=E6=81=A2=E5=A4=8D=E8=B1=81=E5=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 前端 getCurSchId 对无学校身份(超管/平台账号)下发哨兵 -1(store: schId || -1), UserBase 2026-10-12 学校单点开通硬闸门对显式 schoolId 先过 assertSchoolId, -1 非合法学校主键被拒("学校分组不存在"),且超管豁免(isSuperAdmin bypass) 在校验之后根本走不到。OpenApiAppRemoteServiceImpl 边界归一:schoolId<=0 → null, 交 UserBase 按激活身份/主归属兜底——超管恢复全量豁免,GetAppInfoById 同口径覆盖。 --- .../userhome/service/impl/OpenApiAppRemoteServiceImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/yunhai/userhome/service/impl/OpenApiAppRemoteServiceImpl.java b/src/main/java/com/yunhai/userhome/service/impl/OpenApiAppRemoteServiceImpl.java index f6361a2..5bb1bb0 100644 --- a/src/main/java/com/yunhai/userhome/service/impl/OpenApiAppRemoteServiceImpl.java +++ b/src/main/java/com/yunhai/userhome/service/impl/OpenApiAppRemoteServiceImpl.java @@ -29,6 +29,12 @@ public class OpenApiAppRemoteServiceImpl implements AppRemoteService { if (user == null || user.getId() == null) { return Collections.emptyList(); } + // 前端 getCurSchId 对无学校身份(超管/平台账号)下发哨兵 -1(store: schId || -1),非合法学校主键; + // UserBase 2026-10-12 硬闸门对显式 schoolId 先过 assertSchoolId,-1 会被拒("学校分组不存在"), + // 且超管豁免(isSuperAdmin bypass)在校验之后根本走不到——边界归一为 null 交服务端按激活身份/主归属兜底。 + if (schoolId != null && schoolId <= 0) { + schoolId = null; + } // PC 浏览器端;schoolId 透传 UserBase 做学校单点开通收窄(为空则服务端按身份/主归属兜底) return YschBaseOpenApi.getUserApp(user.getId(), ClientEnum.PC_BROWSER, schoolId); }