Merge branch 'develop' into feature/SUPPORT-9276_blocked_filter
This commit is contained in:
commit
bb87bf48ee
6 changed files with 65 additions and 26 deletions
|
|
@ -16,6 +16,7 @@ import ru.micord.ervu.account_applications.component.model.Account;
|
|||
import ru.micord.ervu.account_applications.component.model.Person;
|
||||
import ru.micord.ervu.account_applications.component.model.dto.SearchRequest;
|
||||
import ru.micord.ervu.account_applications.component.model.dto.SearchResponse;
|
||||
import ru.micord.ervu.account_applications.dao.RecruitmentDao;
|
||||
import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
||||
import ru.micord.ervu.account_applications.security.model.jwt.UserSession;
|
||||
import ru.micord.ervu.account_applications.security.model.role.ErvuRoleAuthority;
|
||||
|
|
@ -30,15 +31,20 @@ import ru.cg.webbpm.modules.webkit.beans.Behavior;
|
|||
*/
|
||||
@Service
|
||||
public class AccountGridLoadService extends Behavior implements GridService {
|
||||
private static final String DOMAIN_IDS = "domainIds";
|
||||
private static final String DOMAIN_ID = "domainId";
|
||||
private final SecurityContext securityContext;
|
||||
private final AccountFetchService accountService;
|
||||
@Value("${ervu.role.admin:#{null}}")
|
||||
private String ervuAdminRole;
|
||||
private final RecruitmentDao recruitmentDao;
|
||||
@Value("${ervu.security.role:#{null}}")
|
||||
private String ervuSecurityRole;
|
||||
|
||||
public AccountGridLoadService(SecurityContext securityContext,
|
||||
AccountFetchService accountService) {
|
||||
AccountFetchService accountService,
|
||||
RecruitmentDao recruitmentDao) {
|
||||
this.securityContext = securityContext;
|
||||
this.accountService = accountService;
|
||||
this.recruitmentDao = recruitmentDao;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -105,16 +111,30 @@ public class AccountGridLoadService extends Behavior implements GridService {
|
|||
Map<String, Object> filterMap = new HashMap<>();
|
||||
UserSession userSession = securityContext.getUserSession();
|
||||
Set<ErvuRoleAuthority> roles = userSession.roles();
|
||||
if (ervuAdminRole == null
|
||||
|| roles.stream().noneMatch(role -> role.getAuthority().equals(ervuAdminRole))) {
|
||||
filterMap.put("domainId", securityContext.getDomainId());
|
||||
if (ervuSecurityRole == null
|
||||
|| roles.stream().noneMatch(role -> role.getAuthority().equals(ervuSecurityRole))) {
|
||||
List<String> domainIds = recruitmentDao.getRecruitmentIdsWithParentByDomainId(securityContext.getDomainId());
|
||||
filterMap.put(DOMAIN_IDS, domainIds.toArray());
|
||||
}
|
||||
if (filters != null && filters.length > 0) {
|
||||
filterMap.putAll(Arrays.stream(filters)
|
||||
.filter(filter -> filter.getFilterModels() != null && filter.getFilterModels().length > 0)
|
||||
.collect(Collectors.toMap(
|
||||
filter -> getScriptInObject(filter.componentGuid, StaticFilterComponent.class).name,
|
||||
filter -> filter.getFilterModels()[0].value,
|
||||
filter -> {
|
||||
String filterName = getScriptInObject(filter.componentGuid, StaticFilterComponent.class).name;
|
||||
if (DOMAIN_ID.equals(filterName)) {
|
||||
return DOMAIN_IDS;
|
||||
}
|
||||
return filterName;
|
||||
},
|
||||
filter -> {
|
||||
String filterName = getScriptInObject(filter.componentGuid, StaticFilterComponent.class).name;
|
||||
Object filterValue = filter.getFilterModels()[0].value;
|
||||
if (DOMAIN_ID.equals(filterName)) {
|
||||
return recruitmentDao.getRecruitmentIdsWithParentByDomainId(filterValue.toString()).toArray();
|
||||
}
|
||||
return filterValue;
|
||||
},
|
||||
(existing, replacement) -> replacement
|
||||
))
|
||||
);
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ public class RecruitmentGridService extends GridV2ServiceImpl {
|
|||
@LocalGraphSource(sourceFieldName = "loadDao")
|
||||
@NotNull
|
||||
public EntityColumn recruitmentColumn;
|
||||
@Value("${ervu.role.admin:security_administrator}")
|
||||
private String ervuAdminRole;
|
||||
@Value("${ervu.security.role:security_administrator}")
|
||||
private String ervuSecurityRole;
|
||||
|
||||
public RecruitmentGridService(RecruitmentDao recruitmentDao, SecurityContext securityContext) {
|
||||
this.recruitmentDao = recruitmentDao;
|
||||
|
|
@ -54,8 +54,8 @@ public class RecruitmentGridService extends GridV2ServiceImpl {
|
|||
List<String> recruitmentIds;
|
||||
List<Filter> updatedFilters = new ArrayList<>(Arrays.asList(filters));
|
||||
Optional<Filter> recruitmentFilterOpt = findRecruitmentFilter(updatedFilters);
|
||||
if (ervuAdminRole != null && roles.stream().anyMatch(role -> role.getAuthority().equals(
|
||||
ervuAdminRole))) {
|
||||
if (ervuSecurityRole != null && roles.stream().anyMatch(role -> role.getAuthority().equals(
|
||||
ervuSecurityRole))) {
|
||||
recruitmentIds = recruitmentFilterOpt.map(
|
||||
filter -> getChildRecruitmentIds(updatedFilters, filter))
|
||||
.orElseGet(this::getAllRecruitmentIds);
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ public class TreeItemService {
|
|||
public EntityColumn businessIdColumn;
|
||||
@GraphSource(value = TreeItemRpcService.class, scanMode = GraphSource.ScanMode.SELF)
|
||||
public EntityColumn domainIdColumn;
|
||||
@Value("${ervu.role.admin:security_administrator}")
|
||||
private String ervuAdminRole;
|
||||
@Value("${ervu.security.role:security_administrator}")
|
||||
private String ervuSecurityRole;
|
||||
|
||||
public TreeItemService(SecurityContext securityContext) {
|
||||
this.securityContext = securityContext;
|
||||
|
|
@ -59,8 +59,8 @@ public class TreeItemService {
|
|||
UserSession userSession = securityContext.getUserSession();
|
||||
Set<ErvuRoleAuthority> roles = userSession.roles();
|
||||
List<TreeItemDto> filteredTreeItems = loadTreeItems();
|
||||
if (ervuAdminRole == null || roles.stream().noneMatch(role -> role.getAuthority().equals(
|
||||
ervuAdminRole))) {
|
||||
if (ervuSecurityRole == null || roles.stream().noneMatch(role -> role.getAuthority().equals(
|
||||
ervuSecurityRole))) {
|
||||
filteredTreeItems = filteredTreeItems.stream()
|
||||
.filter(item -> item.domainId.equalsIgnoreCase(domainId))
|
||||
.toList();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue