Skip to content
Snippets Groups Projects
Commit 3a841690 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-2653 OrganisationsEinheitIds aus gruppen und user attributen

auslesen
parent eb8cdf17
No related branches found
No related tags found
No related merge requests found
package de.itvsh.kop.user; package de.itvsh.kop.user;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.Set;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -42,8 +45,15 @@ public abstract class UserResourceMapper { ...@@ -42,8 +45,15 @@ public abstract class UserResourceMapper {
return createdAt != null ? new Date(createdAt) : new Date(); return createdAt != null ? new Date(createdAt) : new Date();
} }
List<String> mapOrganisationsEinheitIds(UserResource userRes) { Set<String> mapOrganisationsEinheitIds(UserResource userRes) {
return userRes.groups().stream() var combinedOrganisationseinheitIds = new ArrayList<String>();
combinedOrganisationseinheitIds.addAll(getOrganisationsEinheitIdsFromGroups(userRes));
combinedOrganisationseinheitIds.addAll(getOrganisationsEinheitIdsFromUserAttributes(userRes));
return new HashSet<>(combinedOrganisationseinheitIds);
}
private List<String> getOrganisationsEinheitIdsFromGroups(UserResource userResource) {
return userResource.groups().stream()
.map(GroupRepresentation::getAttributes) .map(GroupRepresentation::getAttributes)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.map(attributeMap -> attributeMap.get(properties.organisationsEinheitIdKey())) .map(attributeMap -> attributeMap.get(properties.organisationsEinheitIdKey()))
...@@ -52,6 +62,11 @@ public abstract class UserResourceMapper { ...@@ -52,6 +62,11 @@ public abstract class UserResourceMapper {
.toList(); .toList();
} }
private List<String> getOrganisationsEinheitIdsFromUserAttributes(UserResource userResource) {
var attributes = userResource.toRepresentation().getAttributes();
return attributes != null ? attributes.get(properties.organisationsEinheitIdKey()) : new ArrayList<>();
}
List<String> mapRoles(UserResource userRes) { List<String> mapRoles(UserResource userRes) {
var roleRepresentation = Optional.ofNullable(userRes.roles().getAll().getClientMappings()) var roleRepresentation = Optional.ofNullable(userRes.roles().getAll().getClientMappings())
.filter(Objects::nonNull) .filter(Objects::nonNull)
...@@ -65,7 +80,8 @@ public abstract class UserResourceMapper { ...@@ -65,7 +80,8 @@ public abstract class UserResourceMapper {
String mapId(UserResource userRes) { String mapId(UserResource userRes) {
var userRepresentation = userRes.toRepresentation(); var userRepresentation = userRes.toRepresentation();
var id = userRepresentation.getAttributes().get(properties.ldapIdKey()); var attributes = userRepresentation.getAttributes();
var id = attributes != null ? attributes.get(properties.ldapIdKey()) : null;
return id != null ? id.get(0) : userRepresentation.getId(); return id != null ? id.get(0) : userRepresentation.getId();
} }
......
...@@ -6,5 +6,6 @@ usermanager: ...@@ -6,5 +6,6 @@ usermanager:
user: goofyApiUser user: goofyApiUser
password: S9UEMuLG9y9ev99 password: S9UEMuLG9y9ev99
realm: sh-kiel-dev realm: sh-kiel-dev
organisations-einheit-id-key: organisationseinheitId
keycloak: keycloak:
url: https://sso.dev.ozg-sh.de/auth url: https://sso.dev.ozg-sh.de/auth
\ No newline at end of file
package de.itvsh.kop.user.keycloak; package de.itvsh.kop.user.keycloak;
import static org.assertj.core.api.Assertions.*;
import javax.inject.Inject; import javax.inject.Inject;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.*;
import io.quarkus.test.junit.QuarkusTest; import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.junit.TestProfile; import io.quarkus.test.junit.TestProfile;
...@@ -18,7 +18,7 @@ class KeycloakApiServiceITCase { ...@@ -18,7 +18,7 @@ class KeycloakApiServiceITCase {
@Test @Test
void shouldGetAllUsers() { void shouldGetAllUsers() {
var usersStream = service.findAllUser(); var usersStream = service.findAllUser().toList();
assertThat(usersStream).isNotNull(); assertThat(usersStream).isNotNull();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment