Merge branch 'feature/SUPPORT-9035_fix_grids' into feature/SUPPORT-8696_add_kafka
This commit is contained in:
commit
b201567745
3 changed files with 32 additions and 9 deletions
|
|
@ -57,6 +57,12 @@ public class RecruitmentDao {
|
|||
.orderBy(DSL.field(DSL.name("recruitment_hierarchy", "depth")).asc())
|
||||
.fetchInto(String.class);
|
||||
}
|
||||
|
||||
public List<String> getAllRecruitmentIds() {
|
||||
return dslContext.select(Recruitment.RECRUITMENT.IDM_ID)
|
||||
.from(Recruitment.RECRUITMENT)
|
||||
.fetch(Recruitment.RECRUITMENT.IDM_ID);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,13 +4,17 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
import component.field.persist.filter.FilterControl;
|
||||
import model.Filter;
|
||||
import model.grid.GridRows;
|
||||
import model.grid.SortInfo;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.micord.ervu.account_applications.component.dao.RecruitmentDao;
|
||||
import ru.micord.ervu.account_applications.security.model.jwt.UserSession;
|
||||
import ru.micord.ervu.account_applications.security.model.role.ErvuRoleAuthority;
|
||||
import service.GridV2ServiceImpl;
|
||||
|
||||
import ru.cg.webbpm.modules.database.api.dao.option.LoadOptions;
|
||||
|
|
@ -35,6 +39,8 @@ public class RecruitmentGridService extends GridV2ServiceImpl {
|
|||
@LocalGraphSource(sourceFieldName = "loadDao")
|
||||
@NotNull
|
||||
public EntityColumn recruitmentColumn;
|
||||
@Value("${ervu.role.admin:#{null}}")
|
||||
private String ervuRoleAuthority;
|
||||
|
||||
public RecruitmentGridService(RecruitmentDao recruitmentDao, SecurityContext securityContext) {
|
||||
this.recruitmentDao = recruitmentDao;
|
||||
|
|
@ -43,13 +49,21 @@ public class RecruitmentGridService extends GridV2ServiceImpl {
|
|||
|
||||
@Override
|
||||
public GridRows loadData(Integer offset, Integer limit, Filter[] filters, SortInfo[] sortInfos) {
|
||||
List<Filter> updatedFilters = new ArrayList<>(Arrays.asList(filters));
|
||||
Optional<Filter> recruitmentFilterOpt = findRecruitmentFilter(updatedFilters);
|
||||
|
||||
List<String> recruitmentIds = recruitmentFilterOpt.map(
|
||||
filter -> getChildRecruitmentIds(updatedFilters, filter))
|
||||
.orElseGet(this::getRecruitmentIdsForCurrentUser);
|
||||
|
||||
UserSession userSession = securityContext.getUserSession();
|
||||
Set<ErvuRoleAuthority> roles = userSession.roles();
|
||||
List<String> recruitmentIds;
|
||||
List<Filter> updatedFilters;
|
||||
if (ervuRoleAuthority != null && roles.stream().anyMatch(role -> role.getAuthority().equals(ervuRoleAuthority))) {
|
||||
updatedFilters = new ArrayList<>();
|
||||
recruitmentIds = getAllRecruitmentIds();
|
||||
}
|
||||
else {
|
||||
updatedFilters = new ArrayList<>(Arrays.asList(filters));
|
||||
Optional<Filter> recruitmentFilterOpt = findRecruitmentFilter(updatedFilters);
|
||||
recruitmentIds = recruitmentFilterOpt.map(
|
||||
filter -> getChildRecruitmentIds(updatedFilters, filter))
|
||||
.orElseGet(this::getRecruitmentIdsForCurrentUser);
|
||||
}
|
||||
LoadOptions options = getOptions(offset, limit, updatedFilters.toArray(new Filter[0]),
|
||||
sortInfos
|
||||
);
|
||||
|
|
@ -78,5 +92,8 @@ public class RecruitmentGridService extends GridV2ServiceImpl {
|
|||
private EntityFilter getEntityFilterForRecruitmentIds(List<String> recruitmentIds) {
|
||||
return new EntityFilter(recruitmentIds, FilterOperation.IN, this.recruitmentColumn);
|
||||
}
|
||||
}
|
||||
|
||||
private List<String> getAllRecruitmentIds() {
|
||||
return recruitmentDao.getAllRecruitmentIds();
|
||||
}
|
||||
}
|
||||
|
|
@ -28,4 +28,4 @@ ERVU_HTTP_TIMEOUT=30
|
|||
ERVU_PWD_SIGN_SECRET_KEY=xoL2Y3VRdQ4phXG85o6dRqcgqb4bk6ULdkJJdlRLhZM=
|
||||
KAFKA_ROLE_RECONCILIATION=idmv2.role.reconciliation
|
||||
KAFKA_DOMAIN_RECONCILIATION=idmv2.domain.reconciliation
|
||||
IDM_URL=http://idm
|
||||
ERVU_ROLE_ADMIN=security_administrator
|
||||
Loading…
Add table
Add a link
Reference in a new issue