Reapply "refactor(sims): 重构JwtInterceptor并修复用户角色加载"

This reverts commit 4579dbda81299d207de88db0f073bc48301e931a.
This commit is contained in:
suyiiyii 2024-09-05 18:35:00 +08:00
parent 4579dbda81
commit 9c61215678
3 changed files with 11 additions and 20 deletions

View File

@ -57,4 +57,7 @@ public class JwtInterceptor implements HandlerInterceptor {
request.setAttribute("userId", userId);
return true;
}
public static int getUserIdFromReq(HttpServletRequest request){
return (int) request.getAttribute("userId");
}
}

View File

@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import top.suyiiyii.sims.common.AuthAccess;
import top.suyiiyii.sims.common.JwtInterceptor;
import top.suyiiyii.sims.common.Result;
import top.suyiiyii.sims.dto.CommonResponse;
import top.suyiiyii.sims.dto.UserDto;
@ -100,8 +101,9 @@ public class UserController {
@Operation(description = "获取当前用户信息")
@AuthAccess(allowRoles = {"user"})
@GetMapping("/user/me")
public Result<UserDto> getSelf() {
UserDto user = userService.findUser(0);
public Result<UserDto> getSelf(HttpServletRequest request) {
int userId = JwtInterceptor.getUserIdFromReq(request);
UserDto user = userService.findUser(userId);
return Result.success(user);
}

View File

@ -124,14 +124,6 @@ public class UserService {
UserDto.setUserGroup(user.getUserGroup());
UserDto.setRoles(new ArrayList<>());
Integer id = user.getId();
List<Role> roles = roleMapper.selectRolesById(id);
for (Role role : roles) {
Integer roleId = role.getId();
// 获取一个角色的名称列表
List<String> roleNameList = roleMapper.selectRoleNamesByRoleId(roleId);
// 累加角色名称到用户的角色列表中
UserDto.getRoles().addAll(roleNameList);
}
UserDtos.add(UserDto);
}
return UserDtos;
@ -141,21 +133,15 @@ public class UserService {
UserDto UserDto = new UserDto();
User user = userMapper.selectById(id);
if (user == null) {
throw new ServiceException("用户不存在");
}
UserDto.setUserId(user.getId());
UserDto.setUsername(user.getUsername());
UserDto.setGrade(user.getGrade());
UserDto.setUserGroup(user.getUserGroup());
UserDto.setRoles(new ArrayList<>());
List<Role> roles = roleMapper.selectRolesById(id);
for (Role role : roles) {
Integer roleId = role.getId();
// 获取一个角色的名称列表
List<String> roleNameList = roleMapper.selectRoleNamesByRoleId(roleId);
// 累加角色名称到用户的角色列表中
UserDto.getRoles().addAll(roleNameList);
}
//TODO: 获取用户角色
return UserDto;
}