feat(2046) fix 设置角色时,使用group id查询
This commit is contained in:
parent
a897771bf3
commit
d617917e45
@ -9,7 +9,6 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -32,7 +31,6 @@ public class WorkerManagerRoleUserReq {
|
||||
* 这个字段在设置后续产品重构了班组管理员、代班长相关功能的时候,要替换成ROLE ID。
|
||||
* 现在保留权限集ID是因为只是做统一权限角色,查询链路先暂时不变(REQ-2046)
|
||||
*/
|
||||
@NotEmpty
|
||||
private List<Long> permissionGroupId;
|
||||
|
||||
private IdentityType identityType;
|
||||
|
||||
@ -40,5 +40,9 @@ public class SaasPgroupRoleRelationDao extends ServiceImpl<SaasPgroupRoleRelatio
|
||||
|
||||
}
|
||||
|
||||
public List<SaasPgroupRoleRelation> listByGroupIds(List<Long> permissionGroupId) {
|
||||
return lambdaQuery()
|
||||
.in(SaasPgroupRoleRelation::getGroupId, permissionGroupId).list();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -107,6 +107,9 @@ public class SaasRoleDao extends ServiceImpl<SaasRoleMapper, SaasRole> {
|
||||
}
|
||||
|
||||
public List<SaasRole> findInitRole(Set<Long> roleIds) {
|
||||
if (CollectionUtils.isEmpty(roleIds)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return lambdaQuery().in(BaseEntity::getId, roleIds)
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL)
|
||||
.eq(SaasRole::getRoleType, RoleTypeEnum.INIT.getValue())
|
||||
|
||||
@ -128,7 +128,7 @@ public class SaasRoleUserRelationDao extends ServiceImpl<SaasRoleUserRelationMap
|
||||
.eq(SaasRoleUserRelation::getWorkspaceId, req.getWorkspaceId())
|
||||
.eq(SaasRoleUserRelation::getResourceType, req.getResourceType())
|
||||
.eq(SaasRoleUserRelation::getRoleId, req.getResourceId())
|
||||
.setSql(" is_delete = id");
|
||||
.setSql(" is_delete = id").update();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -28,9 +28,7 @@ import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
|
||||
import cn.axzo.tyr.server.service.SaasRoleGroupRelationService;
|
||||
import cn.axzo.tyr.server.service.SaasRoleGroupService;
|
||||
import cn.axzo.tyr.server.service.SaasRoleUserRelationService;
|
||||
import cn.axzo.tyr.server.service.SaasRoleUserService;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@ -332,14 +330,13 @@ public class RoleUserService implements SaasRoleUserService {
|
||||
@Transactional
|
||||
public void grantOrUngrantWorkerManager(WorkerManagerRoleUserReq req) {
|
||||
// 查询出角色ID
|
||||
List<SaasPgroupRoleRelation> saasPgroupRoleRelations = saasPgroupRoleRelationDao.listByIds(req.getPermissionGroupId());
|
||||
|
||||
List<SaasPgroupRoleRelation> saasPgroupRoleRelations = new ArrayList<>(); // NPE
|
||||
if (CollectionUtil.isNotEmpty(req.getPermissionGroupId())) {
|
||||
saasPgroupRoleRelations = saasPgroupRoleRelationDao.listByGroupIds(req.getPermissionGroupId());
|
||||
}
|
||||
List<SaasRole> roleInfos = saasRoleDao.findInitRole(saasPgroupRoleRelations.stream().map(SaasPgroupRoleRelation::getRoleId).collect(Collectors.toSet()));
|
||||
|
||||
if (CollectionUtil.isEmpty(roleInfos)) {
|
||||
log.warn("not found role info");
|
||||
return;
|
||||
}
|
||||
|
||||
RoleUserInfo roleUserBaseInfo = RoleUserInfo.builder()
|
||||
.roleUserResourceInfos(req.getManagerInfos().stream().map(e -> RoleUserInfo.RoleUserResourceInfo
|
||||
.builder()
|
||||
@ -358,7 +355,7 @@ public class RoleUserService implements SaasRoleUserService {
|
||||
if (CollectionUtil.isEmpty(roleUserBaseInfo.getRoleUserResourceInfos())) {
|
||||
throw new ServiceException("grant team manager error, not found person info");
|
||||
}
|
||||
if (CollectionUtil.isEmpty(saasPgroupRoleRelations)) {
|
||||
if (CollectionUtil.isEmpty(saasPgroupRoleRelations)|| CollectionUtil.isEmpty(roleInfos)) {
|
||||
log.warn("warn: grant team manager permission error, not found permissions info");
|
||||
// 未指定授权哪些角色
|
||||
return;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user