From eeae06fe306f3ffa69482efbd18c7023a4418aaf Mon Sep 17 00:00:00 2001 From: wangziqi Date: Sun, 5 Jul 2026 23:51:10 +0800 Subject: [PATCH] feat: add isSuperAdmin to JWT payload for campus scope bypass --- apps/server/src/auth/auth.service.ts | 3 ++- apps/server/src/auth/strategies/jwt.strategy.ts | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/server/src/auth/auth.service.ts b/apps/server/src/auth/auth.service.ts index 554a88e..cba3865 100644 --- a/apps/server/src/auth/auth.service.ts +++ b/apps/server/src/auth/auth.service.ts @@ -59,7 +59,8 @@ export class AuthService { // 获取用户权限 const permissions = await this.rbacService.getUserPermissions(user.id); - const payload = { sub: user.id, username: user.username, permissions }; + const isSuperAdmin = user.roles?.some((r) => r.name === 'super_admin') ?? false; + const payload = { sub: user.id, username: user.username, permissions, isSuperAdmin }; // 获取角色名称列表 const roleNames = user.roles ? user.roles.filter((r) => r.status === 1).map((r) => r.name) : []; diff --git a/apps/server/src/auth/strategies/jwt.strategy.ts b/apps/server/src/auth/strategies/jwt.strategy.ts index 349e843..facdcfc 100644 --- a/apps/server/src/auth/strategies/jwt.strategy.ts +++ b/apps/server/src/auth/strategies/jwt.strategy.ts @@ -30,6 +30,7 @@ export class JwtStrategy extends PassportStrategy(Strategy) { id: payload.sub, username: payload.username, permissions: payload.permissions || [], + isSuperAdmin: payload.isSuperAdmin || false, }; } }