Skip to content

Commit

Permalink
Refactor to process subunits for authorized parties.
Browse files Browse the repository at this point in the history
#deploy-altinn3-tilgang-service-prod #deploy-altinn3-tilgang-service

Changed the handling of authorized parties to include subunits by flattening the structure. Updated methods to use `Flux` for better reactive stream handling and improved filtering logic. This ensures more accurate processing of organizational access data.
  • Loading branch information
krharum committed Dec 19, 2024
1 parent a764c42 commit 3a6f141
Showing 1 changed file with 7 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@

import java.util.List;

import static org.apache.commons.lang3.BooleanUtils.isFalse;
import static org.apache.commons.lang3.StringUtils.isNotBlank;

@Slf4j
@Service
@RequiredArgsConstructor
Expand All @@ -28,14 +25,16 @@ public class AltinnBrukerTilgangService {
public Flux<OrganisasjonDTO> getPersonOrganisasjonTilgang(String ident) {

return Flux.zip(
altinnConsumer.getAuthorizedParties(ident),
altinnConsumer.getAuthorizedParties(ident).collectList(),
altinnConsumer.getOrganisasjoner().collectList())
.flatMap(this::getOrganisasjon);
}

private Mono<OrganisasjonDTO> getOrganisasjon(Tuple2<AuthorizedPartyDTO, List<Organisasjon>> organisasjoner) {
private Flux<OrganisasjonDTO> getOrganisasjon(Tuple2<List<AuthorizedPartyDTO>, List<Organisasjon>> organisasjoner) {

return Mono.just(organisasjoner.getT1())
return Flux.fromIterable(organisasjoner.getT1())
.map(AuthorizedPartyDTO::getSubunits)
.flatMap(Flux::fromIterable)
.filter(party -> party.getAuthorizedResources().contains(DOLLY_RESOURCE))
.filter(party -> organisasjoner.getT2().stream()
.anyMatch(organisasjon -> organisasjon.getOrganisasjonsnummer().equals(party.getOrganizationNumber())))
Expand All @@ -62,8 +61,8 @@ public Mono<PersonDTO> getPersonOrganisasjonDetaljertTilgang(String ident) {
private Flux<PersonDTO.OrganisasjonDTO> getTilpassetOrganisasjon(Tuple2<List<AuthorizedPartyDTO>, List<Organisasjon>> organisasjoner) {

return Flux.fromIterable(organisasjoner.getT1())
.filter(party -> isNotBlank(party.getOrganizationNumber()) && isNotBlank(party.getName()))
.filter(party -> isFalse(party.getIsDeleted()))
.map(AuthorizedPartyDTO::getSubunits)
.flatMap(Flux::fromIterable)
.map(party -> PersonDTO.OrganisasjonDTO.builder()
.navn(party.getName())
.organisasjonsnummer(party.getOrganizationNumber())
Expand Down

0 comments on commit 3a6f141

Please sign in to comment.