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