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());
|
teacher.setLastLoginAt(LocalDateTime.now());
|
||||||
teacherMapper.updateById(teacher);
|
teacherMapper.updateById(teacher);
|
||||||
|
|
||||||
|
// Use the requested role (school or teacher) from the login request
|
||||||
JwtPayload payload = JwtPayload.builder()
|
JwtPayload payload = JwtPayload.builder()
|
||||||
.userId(teacher.getId())
|
.userId(teacher.getId())
|
||||||
.username(teacher.getUsername())
|
.username(teacher.getUsername())
|
||||||
.role("teacher")
|
.role(role)
|
||||||
.tenantId(teacher.getTenantId())
|
.tenantId(teacher.getTenantId())
|
||||||
.name(teacher.getName())
|
.name(teacher.getName())
|
||||||
.build();
|
.build();
|
||||||
@ -206,7 +207,7 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
.userId(teacher.getId())
|
.userId(teacher.getId())
|
||||||
.username(teacher.getUsername())
|
.username(teacher.getUsername())
|
||||||
.name(teacher.getName())
|
.name(teacher.getName())
|
||||||
.role("teacher")
|
.role(role)
|
||||||
.tenantId(teacher.getTenantId())
|
.tenantId(teacher.getTenantId())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
@ -263,7 +264,7 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
.tenantId(null)
|
.tenantId(null)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
case "teacher" -> {
|
case "teacher", "school" -> {
|
||||||
Teacher teacher = teacherMapper.selectById(payload.getUserId());
|
Teacher teacher = teacherMapper.selectById(payload.getUserId());
|
||||||
yield UserInfoResponse.builder()
|
yield UserInfoResponse.builder()
|
||||||
.id(teacher.getId())
|
.id(teacher.getId())
|
||||||
@ -272,7 +273,7 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
.email(teacher.getEmail())
|
.email(teacher.getEmail())
|
||||||
.phone(teacher.getPhone())
|
.phone(teacher.getPhone())
|
||||||
.avatarUrl(teacher.getAvatarUrl())
|
.avatarUrl(teacher.getAvatarUrl())
|
||||||
.role("teacher")
|
.role(role)
|
||||||
.tenantId(teacher.getTenantId())
|
.tenantId(teacher.getTenantId())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
@ -308,7 +309,7 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
adminUser.setPassword(passwordEncoder.encode(newPassword));
|
adminUser.setPassword(passwordEncoder.encode(newPassword));
|
||||||
adminUserMapper.updateById(adminUser);
|
adminUserMapper.updateById(adminUser);
|
||||||
}
|
}
|
||||||
case "teacher" -> {
|
case "teacher", "school" -> {
|
||||||
Teacher teacher = teacherMapper.selectById(userId);
|
Teacher teacher = teacherMapper.selectById(userId);
|
||||||
if (!passwordEncoder.matches(oldPassword, teacher.getPassword())) {
|
if (!passwordEncoder.matches(oldPassword, teacher.getPassword())) {
|
||||||
throw new BusinessException(ErrorCode.OLD_PASSWORD_ERROR);
|
throw new BusinessException(ErrorCode.OLD_PASSWORD_ERROR);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user