移动管理员权限检查

This commit is contained in:
筱锋xiao_lfeng 2024-01-18 15:26:34 +08:00
parent 08b58d4717
commit 1dd56d4690
Signed by: XiaoLFeng
GPG Key ID: F693AA12AABBFA87
2 changed files with 24 additions and 22 deletions

View File

@ -2,8 +2,6 @@ package com.jsl.oa.services.impl;
import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.doData.RoleDO;
import com.jsl.oa.model.doData.RoleUserDO;
import com.jsl.oa.model.doData.UserCurrentDO;
import com.jsl.oa.model.doData.UserDO;
import com.jsl.oa.model.voData.UserAllCurrentVO;
@ -67,7 +65,7 @@ public class UserServiceImpl implements UserService {
@Override
public BaseResponse userCurrentAll(HttpServletRequest request, @NotNull UserAllCurrentVO userAllCurrentVO) {
// 检查是否是管理员用户
if (!checkUserIsAdmin(request)) {
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 检查数据
@ -104,7 +102,7 @@ public class UserServiceImpl implements UserService {
@Override
public BaseResponse userCurrent(HttpServletRequest request, String id, String username, String email, String phone) {
// 检查是否是管理员用户
if (!checkUserIsAdmin(request)) {
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_ADMIN);
}
// 根据顺序优先级进行用户信息获取
@ -125,22 +123,4 @@ public class UserServiceImpl implements UserService {
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
}
}
/**
* <h2>检查用户是否是管理员</h2>
* <hr/>
* 该方法用于检查用户是否是管理员类型封装后字节返回结果
*
* @param request 请求
* @return 如果为 true 是管理员false 不是管理员
*/
private @NotNull Boolean checkUserIsAdmin(HttpServletRequest request) {
RoleUserDO roleUserDO = roleMapper.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
if (roleUserDO != null) {
RoleDO roleDO = roleMapper.getRoleByRoleName("admin");
return roleUserDO.getRid().equals(roleDO.getId());
} else {
return false;
}
}
}

View File

@ -1,5 +1,8 @@
package com.jsl.oa.utils;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.doData.RoleDO;
import com.jsl.oa.model.doData.RoleUserDO;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.validation.BindingResult;
@ -146,6 +149,25 @@ public class Processing {
}
}
/**
* <h2>检查用户是否是管理员</h2>
* <hr/>
* 该方法用于检查用户是否是管理员类型封装后字节返回结果
*
* @param request 请求
* @param roleMapper RoleMapper
* @return 如果为 true 是管理员false 不是管理员
*/
public static @NotNull Boolean checkUserIsAdmin(HttpServletRequest request, @NotNull RoleMapper roleMapper) {
RoleUserDO roleUserDO = roleMapper.getRoleUserByUid(Processing.getAuthHeaderToUserId(request));
if (roleUserDO != null) {
RoleDO roleDO = roleMapper.getRoleByRoleName("admin");
return roleUserDO.getRid().equals(roleDO.getId());
} else {
return false;
}
}
private static char getCharFromIndex(int index) {
// 生成字符集合可以根据需要自定义
String charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";