Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit 2e9d9c9

Browse files
Merge pull request SORMAS-Foundation#3721 from hzi-braunschweig/3608_fix-sormas-to-sormas-return-with-additional-case-data
SORMAS-Foundation#3608 fix pseudonomization issue on returning data from one sormas instance to another
2 parents 7e8ec15 + 1a84133 commit 2e9d9c9

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/user/UserRole.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public enum UserRole
6161
IMPORT_USER(false, false, false, false, JurisdictionLevel.NONE),
6262
REST_EXTERNAL_VISITS_USER(false, false, false, false, JurisdictionLevel.NONE),
6363
REST_USER(false, false, false, false, JurisdictionLevel.NONE),
64-
SORMAS_TO_SORMAS_CLIENT(false, false, false, false, JurisdictionLevel.NONE);
64+
SORMAS_TO_SORMAS_CLIENT(false, false, false, false, JurisdictionLevel.NATION);
6565

6666
/*
6767
* Hint for SonarQube issues:

sormas-api/src/main/java/de/symeda/sormas/api/utils/pseudonymization/DtoPseudonymizer.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ public <DTO> void pseudonymizeDto(Class<DTO> type, DTO dto, boolean isInJurisdic
9999
}
100100

101101
public <DTO extends Pseudonymizable> void restorePseudonymizedValues(Class<DTO> type, DTO dto, DTO originalDto, boolean isInJurisdiction) {
102+
if (originalDto == null) {
103+
return;
104+
}
105+
102106
List<Field> pseudonymizableFields = getPseudonymizableFields(type, isInJurisdiction);
103107
List<Field> embeddedFields = getEmbeddedFields(type, isInJurisdiction);
104108

sormas-backend/src/main/java/de/symeda/sormas/backend/person/PersonService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@
4343
import javax.persistence.criteria.Root;
4444
import javax.persistence.criteria.Subquery;
4545

46-
import de.symeda.sormas.api.person.PersonDto;
4746
import org.apache.commons.lang3.StringUtils;
4847

4948
import de.symeda.sormas.api.Disease;
5049
import de.symeda.sormas.api.caze.CaseClassification;
50+
import de.symeda.sormas.api.person.PersonDto;
5151
import de.symeda.sormas.api.person.PersonNameDto;
5252
import de.symeda.sormas.api.person.PersonSimilarityCriteria;
5353
import de.symeda.sormas.api.utils.DateHelper;
@@ -244,13 +244,13 @@ public List<Long> getInJurisdictionIDs(final List<Person> selectedPersons) {
244244
inJurisdictionQuery.select(personRoot.get(Person.ID));
245245

246246
final Predicate isFromSelectedPersons =
247-
cb.in(personRoot.get(Person.ID)).value(selectedPersons.stream().map(p -> p.getId()).collect(Collectors.toList()));
248-
inJurisdictionQuery.where(cb.and(isFromSelectedPersons, isInJurisdiction(cb, inJurisdictionQuery, personRoot)));
247+
cb.in(personRoot.get(Person.ID)).value(selectedPersons.stream().map(Person::getId).collect(Collectors.toList()));
248+
inJurisdictionQuery.where(cb.and(isFromSelectedPersons, getJurisdictionPredicate(cb, inJurisdictionQuery, personRoot)));
249249

250250
return em.createQuery(inJurisdictionQuery).getResultList();
251251
}
252252

253-
private Predicate isInJurisdiction(CriteriaBuilder cb, CriteriaQuery<Long> cq, Root<Person> personRoot) {
253+
private Predicate getJurisdictionPredicate(CriteriaBuilder cb, CriteriaQuery<Long> cq, Root<Person> personRoot) {
254254

255255
final Path<Object> personId = personRoot.get(Person.ID);
256256

0 commit comments

Comments
 (0)