新增 角色类型,用于判断登入的不同系统,使用对应的角色权限
This commit is contained in:
parent
e5d809fba1
commit
cda6327ba9
@ -96,7 +96,11 @@ public class AuthController {
|
|||||||
|
|
||||||
@GetMapping("/get-permission-info")
|
@GetMapping("/get-permission-info")
|
||||||
@Operation(summary = "获取登录用户的权限信息")
|
@Operation(summary = "获取登录用户的权限信息")
|
||||||
public CommonResult<AuthPermissionInfoRespVO> getPermissionInfo() {
|
public CommonResult<AuthPermissionInfoRespVO> getPermissionInfo(HttpServletRequest request) {
|
||||||
|
|
||||||
|
// 获得角色类型
|
||||||
|
String type = request.getHeader("type");
|
||||||
|
|
||||||
// 1.1 获得用户信息
|
// 1.1 获得用户信息
|
||||||
AdminUserDO user = userService.getUser(getLoginUserId());
|
AdminUserDO user = userService.getUser(getLoginUserId());
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
@ -109,7 +113,12 @@ public class AuthController {
|
|||||||
return success(AuthConvert.INSTANCE.convert(user, Collections.emptyList(), Collections.emptyList()));
|
return success(AuthConvert.INSTANCE.convert(user, Collections.emptyList(), Collections.emptyList()));
|
||||||
}
|
}
|
||||||
List<RoleDO> roles = roleService.getRoleList(roleIds);
|
List<RoleDO> roles = roleService.getRoleList(roleIds);
|
||||||
roles.removeIf(role -> !CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())); // 移除禁用的角色
|
roles.removeIf(role -> !CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())
|
||||||
|
|| !type.equals(role.getType().toString())); // 移除禁用和类型不一致的角色
|
||||||
|
|
||||||
|
if (CollUtil.isEmpty(roles)) {
|
||||||
|
return success(AuthConvert.INSTANCE.convert(user, Collections.emptyList(), Collections.emptyList()));
|
||||||
|
}
|
||||||
|
|
||||||
// 1.3 获得菜单列表
|
// 1.3 获得菜单列表
|
||||||
Set<Long> menuIds = permissionService.getRoleMenuListByRoleId(convertSet(roles, RoleDO::getId));
|
Set<Long> menuIds = permissionService.getRoleMenuListByRoleId(convertSet(roles, RoleDO::getId));
|
||||||
|
@ -41,7 +41,7 @@ public class RoleController {
|
|||||||
@Operation(summary = "创建角色")
|
@Operation(summary = "创建角色")
|
||||||
@PreAuthorize("@ss.hasPermission('system:role:create')")
|
@PreAuthorize("@ss.hasPermission('system:role:create')")
|
||||||
public CommonResult<Long> createRole(@Valid @RequestBody RoleSaveReqVO createReqVO) {
|
public CommonResult<Long> createRole(@Valid @RequestBody RoleSaveReqVO createReqVO) {
|
||||||
return success(roleService.createRole(createReqVO, null));
|
return success(roleService.createRole(createReqVO, createReqVO.getType()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
|
@ -24,6 +24,10 @@ public class RoleSaveReqVO {
|
|||||||
@Schema(description = "角色编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ADMIN")
|
@Schema(description = "角色编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ADMIN")
|
||||||
private String code;
|
private String code;
|
||||||
|
|
||||||
|
@Schema(description = "角色类型 字典值 | 参考system_role_type", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
@NotNull(message = "角色类型不能为空")
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
@Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
@Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||||
@NotNull(message = "显示顺序不能为空")
|
@NotNull(message = "显示顺序不能为空")
|
||||||
private Integer sort;
|
private Integer sort;
|
||||||
|
@ -21,6 +21,7 @@ public interface RoleMapper extends BaseMapperX<RoleDO> {
|
|||||||
.likeIfPresent(RoleDO::getCode, reqVO.getCode())
|
.likeIfPresent(RoleDO::getCode, reqVO.getCode())
|
||||||
.eqIfPresent(RoleDO::getStatus, reqVO.getStatus())
|
.eqIfPresent(RoleDO::getStatus, reqVO.getStatus())
|
||||||
.betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime())
|
.betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByAsc(RoleDO::getType)
|
||||||
.orderByAsc(RoleDO::getSort));
|
.orderByAsc(RoleDO::getSort));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.system.service.permission;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import cn.hutool.extra.spring.SpringUtil;
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
@ -15,7 +14,6 @@ import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMapper;
|
|||||||
import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants;
|
import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants;
|
||||||
import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum;
|
import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum;
|
||||||
import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum;
|
import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum;
|
||||||
import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum;
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.cache.annotation.CacheEvict;
|
import org.springframework.cache.annotation.CacheEvict;
|
||||||
@ -53,7 +51,7 @@ public class RoleServiceImpl implements RoleService {
|
|||||||
validateRoleDuplicate(createReqVO.getName(), createReqVO.getCode(), null);
|
validateRoleDuplicate(createReqVO.getName(), createReqVO.getCode(), null);
|
||||||
// 插入到数据库
|
// 插入到数据库
|
||||||
RoleDO role = BeanUtils.toBean(createReqVO, RoleDO.class);
|
RoleDO role = BeanUtils.toBean(createReqVO, RoleDO.class);
|
||||||
role.setType(ObjectUtil.defaultIfNull(type, RoleTypeEnum.CUSTOM.getType()));
|
role.setType(type);
|
||||||
role.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
role.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||||
role.setDataScope(DataScopeEnum.ALL.getScope()); // 默认可查看所有数据。原因是,可能一些项目不需要项目权限
|
role.setDataScope(DataScopeEnum.ALL.getScope()); // 默认可查看所有数据。原因是,可能一些项目不需要项目权限
|
||||||
roleMapper.insert(role);
|
roleMapper.insert(role);
|
||||||
@ -172,7 +170,6 @@ public class RoleServiceImpl implements RoleService {
|
|||||||
return roleMapper.selectById(id);
|
return roleMapper.selectById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RoleDO> getRoleListByStatus(Collection<Integer> statuses) {
|
public List<RoleDO> getRoleListByStatus(Collection<Integer> statuses) {
|
||||||
return roleMapper.selectListByStatus(statuses);
|
return roleMapper.selectListByStatus(statuses);
|
||||||
|
Loading…
Reference in New Issue
Block a user