diff --git a/user-manager-server/src/main/java/de/ozgcloud/user/User.java b/user-manager-server/src/main/java/de/ozgcloud/user/User.java index 4730ac15f4b5c424bfe50b964817965f356dde44..fe2eba2fe1c36f077e18aeab4cd953775c68b977 100644 --- a/user-manager-server/src/main/java/de/ozgcloud/user/User.java +++ b/user-manager-server/src/main/java/de/ozgcloud/user/User.java @@ -64,7 +64,6 @@ public class User { public static final String USERNAME_FIELD = "username"; public static final String ORGANISATIONS_EINHEIT_IDS_FIELD = "organisationsEinheitIds"; public static final String USER_SETTINGS_FIELD = "userSettings"; - public static final String NOTIFICATION_SEND_FOR_FIELD = "userSettings.notificationsSendFor"; @JsonIgnore @BsonId diff --git a/user-manager-server/src/main/java/de/ozgcloud/user/recipient/RecipientRepository.java b/user-manager-server/src/main/java/de/ozgcloud/user/recipient/RecipientRepository.java index 417e715de7e0aedead84a84a4484ee123c796f55..17482b933b614b1c6f36c61b58b064846937b907 100644 --- a/user-manager-server/src/main/java/de/ozgcloud/user/recipient/RecipientRepository.java +++ b/user-manager-server/src/main/java/de/ozgcloud/user/recipient/RecipientRepository.java @@ -4,17 +4,21 @@ import static de.ozgcloud.user.User.*; import java.util.List; +import jakarta.enterprise.context.ApplicationScoped; + import de.ozgcloud.common.logging.OzgCloudLogging; import de.ozgcloud.user.User; +import de.ozgcloud.user.common.DocumentUtils; import de.ozgcloud.user.settings.NotificationsSendFor; +import de.ozgcloud.user.settings.UserSettings; import io.quarkus.mongodb.panache.PanacheMongoRepository; -import jakarta.enterprise.context.ApplicationScoped; @ApplicationScoped @OzgCloudLogging class RecipientRepository implements PanacheMongoRepository<User> { - private static final String SEARCH_RECIPIENT_QUERY = ORGANISATIONS_EINHEIT_IDS_FIELD + " = ?1 and " + NOTIFICATION_SEND_FOR_FIELD + " = ?2"; + private static final String SEARCH_RECIPIENT_QUERY = ORGANISATIONS_EINHEIT_IDS_FIELD + " = ?1 and " + + DocumentUtils.buildFieldPath(USER_SETTINGS_FIELD, UserSettings.NOTIFICATIONS_SEND_FOR_FIELD) + " = ?2"; public List<User> findByOrganisationsEinheitId(String organisationseinheitId) { return find(SEARCH_RECIPIENT_QUERY, organisationseinheitId, NotificationsSendFor.ALL.name()).list(); diff --git a/user-manager-server/src/main/java/de/ozgcloud/user/settings/UserSettings.java b/user-manager-server/src/main/java/de/ozgcloud/user/settings/UserSettings.java index b686a9cb6e5d3b4a4d4b500bcee22eb83b78f832..112258b7c08abc6bb258579d22a2318ed9dd5198 100644 --- a/user-manager-server/src/main/java/de/ozgcloud/user/settings/UserSettings.java +++ b/user-manager-server/src/main/java/de/ozgcloud/user/settings/UserSettings.java @@ -23,6 +23,7 @@ */ package de.ozgcloud.user.settings; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.Setter; @@ -30,6 +31,7 @@ import lombok.Setter; @Builder(toBuilder = true) @Getter @Setter +@AllArgsConstructor public class UserSettings { public static final String NOTIFICATIONS_SEND_FOR_FIELD = "notificationsSendFor"; @@ -44,29 +46,15 @@ public class UserSettings { private boolean postfachNachrichtFromAntragsteller; private boolean wiedervorlageOverdue; - public UserSettings(final NotificationsSendFor notificationsSendFor, final boolean vorgangCreated, final boolean vorgangAssignedToUser, - final boolean postfachNachrichtFromAntragsteller, final boolean wiedervorlageOverdue) { - this.notificationsSendFor = notificationsSendFor; - this.vorgangCreated = vorgangCreated; - this.vorgangAssignedToUser = vorgangAssignedToUser; - this.postfachNachrichtFromAntragsteller = postfachNachrichtFromAntragsteller; - this.wiedervorlageOverdue = wiedervorlageOverdue; - } - - public UserSettings(final NotificationsSendFor notificationsSendFor) { + public UserSettings(NotificationsSendFor notificationsSendFor) { this(notificationsSendFor, notificationsSendFor == NotificationsSendFor.ALL, true, true, true); } public UserSettings() { - this(NotificationsSendFor.NONE, false, true, true, true); + this(NotificationsSendFor.NONE); } public static UserSettings createDefault() { - return UserSettings.builder() - .notificationsSendFor(NotificationsSendFor.NONE) - .vorgangCreated(false) - .vorgangAssignedToUser(true) - .postfachNachrichtFromAntragsteller(true) - .wiedervorlageOverdue(true).build(); + return new UserSettings(); } } diff --git a/user-manager-server/src/test/java/de/ozgcloud/user/recipient/RecipientRepositoryTest.java b/user-manager-server/src/test/java/de/ozgcloud/user/recipient/RecipientRepositoryTest.java index addd8cf25b5a30a51bc2a54f58ce0228798e9c58..c1e0c5da10499a826110aa997f430acea78577b8 100644 --- a/user-manager-server/src/test/java/de/ozgcloud/user/recipient/RecipientRepositoryTest.java +++ b/user-manager-server/src/test/java/de/ozgcloud/user/recipient/RecipientRepositoryTest.java @@ -37,7 +37,9 @@ import org.mockito.Spy; import de.ozgcloud.user.User; import de.ozgcloud.user.UserTestFactory; +import de.ozgcloud.user.common.DocumentUtils; import de.ozgcloud.user.settings.NotificationsSendFor; +import de.ozgcloud.user.settings.UserSettings; import io.quarkus.mongodb.panache.PanacheQuery; class RecipientRepositoryTest { @@ -50,7 +52,8 @@ class RecipientRepositoryTest { @DisplayName("Test finding users by Organistationseinheit") @Nested class TestFindByOrganisationsEinheit { - private static final String QUERY = ORGANISATIONS_EINHEIT_IDS_FIELD + " = ?1 and " + NOTIFICATION_SEND_FOR_FIELD + " = ?2"; + private static final String QUERY = ORGANISATIONS_EINHEIT_IDS_FIELD + " = ?1 and " + + DocumentUtils.buildFieldPath(USER_SETTINGS_FIELD, UserSettings.NOTIFICATIONS_SEND_FOR_FIELD) + " = ?2"; @Test void shouldCallFind() { diff --git a/user-manager-server/src/test/resources/application.yml b/user-manager-server/src/test/resources/application.yml index bb3a56bcf9202539a99a364b521f5411408c71f0..1efbf87b728c5b3813ea9f58e2c7f73ec9b749d4 100644 --- a/user-manager-server/src/test/resources/application.yml +++ b/user-manager-server/src/test/resources/application.yml @@ -17,6 +17,8 @@ quarkus: auth-server-url: https://sso.dev.by.ozg-cloud.de/realms/by-kiel-dev management: test-port: 9003 + mongock: + enabled: false keycloak: url: http://localhost:8088