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