fix(auth): 修复学校账号登录角色返回错误问题

loginWithRole()中SCHOOL/TEACHER分支改为返回请求中指定的role(school或teacher),
而非硬编码"teacher"。同步修复getCurrentUserInfo()和changePassword()支持"school"角色。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
tonytech 2026-03-02 15:41:58 +08:00
parent 859c71db09
commit 8b7615bcf1

View File

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