From 76b011d3cb7ece20bd22b9e7ae72b0d06012969b Mon Sep 17 00:00:00 2001 From: Felix Reichenbach <felix.reichenbach@mgm-tp.com> Date: Wed, 12 Feb 2025 15:14:49 +0100 Subject: [PATCH] OZG-7605 check for any system user in historie model assembler --- .../alfa/historie/HistorieModelAssembler.java | 14 +++++++------- .../alfa/historie/HistorieModelAssemblerTest.java | 15 ++++++++++----- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieModelAssembler.java index b3d974cdfd..a88d362dfe 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieModelAssembler.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieModelAssembler.java @@ -29,7 +29,6 @@ import java.util.Objects; import java.util.Optional; import java.util.stream.Stream; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.hateoas.CollectionModel; import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.Link; @@ -39,17 +38,18 @@ import org.springframework.stereotype.Component; import de.ozgcloud.alfa.common.ModelBuilder; import de.ozgcloud.alfa.common.command.Command; import de.ozgcloud.alfa.common.user.UserManagerUrlProvider; +import lombok.RequiredArgsConstructor; @Component +@RequiredArgsConstructor class HistorieModelAssembler implements RepresentationModelAssembler<Command, EntityModel<Command>> { - static final String SYSTEM_NOTIFICATION_MANAGER_PREFIX = "system-notification_manager"; + static final String SYSTEM_USER_PREFIX = "system-"; static final String REL_ASSIGNED_TO = "assignedTo"; static final String ASSIGNED_TO_BODY_FIELD = "assignedTo"; - @Autowired - private UserManagerUrlProvider userManagerUrlProvider; + private final UserManagerUrlProvider userManagerUrlProvider; @Override public EntityModel<Command> toModel(Command entity) { @@ -62,15 +62,15 @@ class HistorieModelAssembler implements RepresentationModelAssembler<Command, En } Command unsetSystemUser(Command entity) { - if (isSystemNotificationUser(entity)) { + if (isSystemUser(entity)) { return entity.toBuilder().createdBy(null).build(); } return entity; } - private boolean isSystemNotificationUser(Command entity) { - return Objects.nonNull(entity.getCreatedBy()) && entity.getCreatedBy().toString().startsWith(SYSTEM_NOTIFICATION_MANAGER_PREFIX); + private boolean isSystemUser(Command entity) { + return Objects.nonNull(entity.getCreatedBy()) && entity.getCreatedBy().toString().startsWith(SYSTEM_USER_PREFIX); } private void addAssignedTo(Command entity, ModelBuilder<Command> modelBuilder) { diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java index e420daa620..76c9affa1e 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java @@ -37,6 +37,8 @@ import org.mockito.Mock; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; +import com.thedeanda.lorem.LoremIpsum; + import de.ozgcloud.alfa.common.UserProfileUrlProvider; import de.ozgcloud.alfa.common.command.CommandTestFactory; import de.ozgcloud.alfa.common.user.UserId; @@ -52,7 +54,7 @@ class HistorieModelAssemblerTest { @Mock private UserManagerUrlProvider userManagerUrlProvider; - private final String COMMAND_SINGLE_PATH = "/api/histories/" + CommandTestFactory.ID; + private static final String COMMAND_SINGLE_PATH = "/api/histories/" + CommandTestFactory.ID; private UserProfileUrlProvider urlProvider = new UserProfileUrlProvider(); @@ -133,10 +135,13 @@ class HistorieModelAssemblerTest { } @Test - void shouldNotExistingAtSystemNotificationMAnager() { - var model = modelAssembler - .toModel(CommandTestFactory.createBuilder().createdBy(UserId.from(HistorieModelAssembler.SYSTEM_NOTIFICATION_MANAGER_PREFIX)) - .build()); + void shouldNotExistForSystemUser() { + var systemUser = UserId.from("system-" + LoremIpsum.getInstance().getWords(1)); + var commandBySystemUser = CommandTestFactory.createBuilder() + .createdBy(systemUser) + .build(); + + var model = modelAssembler.toModel(commandBySystemUser); assertThat(model.getLink(CREATED_BY)).isNotPresent(); } -- GitLab