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:
parent
859c71db09
commit
8b7615bcf1
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user