From 8b7615bcf1cb1f801299d78ee1cd3429b55a9251 Mon Sep 17 00:00:00 2001 From: tonytech Date: Mon, 2 Mar 2026 15:41:58 +0800 Subject: [PATCH] =?UTF-8?q?fix(auth):=20=E4=BF=AE=E5=A4=8D=E5=AD=A6?= =?UTF-8?q?=E6=A0=A1=E8=B4=A6=E5=8F=B7=E7=99=BB=E5=BD=95=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit loginWithRole()中SCHOOL/TEACHER分支改为返回请求中指定的role(school或teacher), 而非硬编码"teacher"。同步修复getCurrentUserInfo()和changePassword()支持"school"角色。 Co-Authored-By: Claude Sonnet 4.6 --- .../platform/service/impl/AuthServiceImpl.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/reading-platform-java/src/main/java/com/reading/platform/service/impl/AuthServiceImpl.java b/reading-platform-java/src/main/java/com/reading/platform/service/impl/AuthServiceImpl.java index e3f7d7e..7f8f08c 100644 --- a/reading-platform-java/src/main/java/com/reading/platform/service/impl/AuthServiceImpl.java +++ b/reading-platform-java/src/main/java/com/reading/platform/service/impl/AuthServiceImpl.java @@ -193,10 +193,11 @@ public class AuthServiceImpl implements AuthService { teacher.setLastLoginAt(LocalDateTime.now()); teacherMapper.updateById(teacher); + // Use the requested role (school or teacher) from the login request JwtPayload payload = JwtPayload.builder() .userId(teacher.getId()) .username(teacher.getUsername()) - .role("teacher") + .role(role) .tenantId(teacher.getTenantId()) .name(teacher.getName()) .build(); @@ -206,7 +207,7 @@ public class AuthServiceImpl implements AuthService { .userId(teacher.getId()) .username(teacher.getUsername()) .name(teacher.getName()) - .role("teacher") + .role(role) .tenantId(teacher.getTenantId()) .build(); } @@ -263,7 +264,7 @@ public class AuthServiceImpl implements AuthService { .tenantId(null) .build(); } - case "teacher" -> { + case "teacher", "school" -> { Teacher teacher = teacherMapper.selectById(payload.getUserId()); yield UserInfoResponse.builder() .id(teacher.getId()) @@ -272,7 +273,7 @@ public class AuthServiceImpl implements AuthService { .email(teacher.getEmail()) .phone(teacher.getPhone()) .avatarUrl(teacher.getAvatarUrl()) - .role("teacher") + .role(role) .tenantId(teacher.getTenantId()) .build(); } @@ -308,7 +309,7 @@ public class AuthServiceImpl implements AuthService { adminUser.setPassword(passwordEncoder.encode(newPassword)); adminUserMapper.updateById(adminUser); } - case "teacher" -> { + case "teacher", "school" -> { Teacher teacher = teacherMapper.selectById(userId); if (!passwordEncoder.matches(oldPassword, teacher.getPassword())) { throw new BusinessException(ErrorCode.OLD_PASSWORD_ERROR);