|
@@ -74,24 +74,18 @@ public class SysUserController {
|
|
|
* - 2.如果传 user_id,需要具备权限才能查看他人用户信息
|
|
|
* - 3.除了超管自己其他人不可以查看超管信息
|
|
|
*/
|
|
|
+ @QueryNullCheck(serviceClass = SysUserService.class, serviceMethod = "queryUserById", argField = "user_id", message = "用户不存在")
|
|
|
@GetMapping("/api/system/user/getUserDetail")
|
|
|
public Result getUserDetail(@Validated(SysUserDTO.Detail.class) SysUserDTO sysUserDTO) {
|
|
|
|
|
|
- long user_id = httpRequestAspect.getUserId();
|
|
|
+ Long user_id = httpRequestAspect.getUserId();
|
|
|
|
|
|
// 1.如果 user_id 为空,则查看自己
|
|
|
if (sysUserDTO.getUser_id() == null) sysUserDTO.setUser_id(user_id);
|
|
|
- // 2.如果是查看自己,则不需要授权
|
|
|
- if (user_id != sysUserDTO.getUser_id()) {
|
|
|
- if (!permissionService.hasPermi("3.2.1")) {
|
|
|
- throw new CustomException(ResultEnum.AUTH_ROLE_ERROR.getMessage(), ResultEnum.AUTH_ROLE_ERROR.getCode());
|
|
|
- }
|
|
|
- }
|
|
|
- // 3.判断是否 超级管理员(首位)(id:1),仅首位可查看自己的信息
|
|
|
- Boolean isOnlySuperAdmin = OnlySuperAdmin(sysUserDTO);
|
|
|
- if (!isOnlySuperAdmin) {
|
|
|
- return Result.error(ResultEnum.AUTH_USER_ERROR.getCode(), ResultEnum.AUTH_USER_ERROR.getMessage());
|
|
|
- }
|
|
|
+ // 2.判断是否匹配当前 {用户ID} 与 {用户权限},不是则抛出错误
|
|
|
+ permissionService.checkUserIdAndPermission(sysUserDTO.getUser_id(), "3.2.1");
|
|
|
+ // 3.判断是否 首位超级管理员 (id:1),不是则抛出错误
|
|
|
+ permissionService.checkSuperAdminOfFirst(sysUserDTO.getUser_id());
|
|
|
|
|
|
return Result.success(sysUserService.queryUserById(sysUserDTO.getUser_id()));
|
|
|
}
|