Skip to content
Snippets Groups Projects
Commit 76b011d3 authored by Felix Reichenbach's avatar Felix Reichenbach
Browse files

OZG-7605 check for any system user in historie model assembler

parent 80c6aac2
Branches
Tags
1 merge request!14OZG-7605 check for any system user in historie model assembler
...@@ -29,7 +29,6 @@ import java.util.Objects; ...@@ -29,7 +29,6 @@ import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.hateoas.CollectionModel; import org.springframework.hateoas.CollectionModel;
import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.EntityModel;
import org.springframework.hateoas.Link; import org.springframework.hateoas.Link;
...@@ -39,17 +38,18 @@ import org.springframework.stereotype.Component; ...@@ -39,17 +38,18 @@ import org.springframework.stereotype.Component;
import de.ozgcloud.alfa.common.ModelBuilder; import de.ozgcloud.alfa.common.ModelBuilder;
import de.ozgcloud.alfa.common.command.Command; import de.ozgcloud.alfa.common.command.Command;
import de.ozgcloud.alfa.common.user.UserManagerUrlProvider; import de.ozgcloud.alfa.common.user.UserManagerUrlProvider;
import lombok.RequiredArgsConstructor;
@Component @Component
@RequiredArgsConstructor
class HistorieModelAssembler implements RepresentationModelAssembler<Command, EntityModel<Command>> { 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 REL_ASSIGNED_TO = "assignedTo";
static final String ASSIGNED_TO_BODY_FIELD = "assignedTo"; static final String ASSIGNED_TO_BODY_FIELD = "assignedTo";
@Autowired private final UserManagerUrlProvider userManagerUrlProvider;
private UserManagerUrlProvider userManagerUrlProvider;
@Override @Override
public EntityModel<Command> toModel(Command entity) { public EntityModel<Command> toModel(Command entity) {
...@@ -62,15 +62,15 @@ class HistorieModelAssembler implements RepresentationModelAssembler<Command, En ...@@ -62,15 +62,15 @@ class HistorieModelAssembler implements RepresentationModelAssembler<Command, En
} }
Command unsetSystemUser(Command entity) { Command unsetSystemUser(Command entity) {
if (isSystemNotificationUser(entity)) { if (isSystemUser(entity)) {
return entity.toBuilder().createdBy(null).build(); return entity.toBuilder().createdBy(null).build();
} }
return entity; return entity;
} }
private boolean isSystemNotificationUser(Command entity) { private boolean isSystemUser(Command entity) {
return Objects.nonNull(entity.getCreatedBy()) && entity.getCreatedBy().toString().startsWith(SYSTEM_NOTIFICATION_MANAGER_PREFIX); return Objects.nonNull(entity.getCreatedBy()) && entity.getCreatedBy().toString().startsWith(SYSTEM_USER_PREFIX);
} }
private void addAssignedTo(Command entity, ModelBuilder<Command> modelBuilder) { private void addAssignedTo(Command entity, ModelBuilder<Command> modelBuilder) {
......
...@@ -37,6 +37,8 @@ import org.mockito.Mock; ...@@ -37,6 +37,8 @@ import org.mockito.Mock;
import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.IanaLinkRelations;
import org.springframework.hateoas.Link; import org.springframework.hateoas.Link;
import com.thedeanda.lorem.LoremIpsum;
import de.ozgcloud.alfa.common.UserProfileUrlProvider; import de.ozgcloud.alfa.common.UserProfileUrlProvider;
import de.ozgcloud.alfa.common.command.CommandTestFactory; import de.ozgcloud.alfa.common.command.CommandTestFactory;
import de.ozgcloud.alfa.common.user.UserId; import de.ozgcloud.alfa.common.user.UserId;
...@@ -52,7 +54,7 @@ class HistorieModelAssemblerTest { ...@@ -52,7 +54,7 @@ class HistorieModelAssemblerTest {
@Mock @Mock
private UserManagerUrlProvider userManagerUrlProvider; 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(); private UserProfileUrlProvider urlProvider = new UserProfileUrlProvider();
...@@ -133,10 +135,13 @@ class HistorieModelAssemblerTest { ...@@ -133,10 +135,13 @@ class HistorieModelAssemblerTest {
} }
@Test @Test
void shouldNotExistingAtSystemNotificationMAnager() { void shouldNotExistForSystemUser() {
var model = modelAssembler var systemUser = UserId.from("system-" + LoremIpsum.getInstance().getWords(1));
.toModel(CommandTestFactory.createBuilder().createdBy(UserId.from(HistorieModelAssembler.SYSTEM_NOTIFICATION_MANAGER_PREFIX)) var commandBySystemUser = CommandTestFactory.createBuilder()
.build()); .createdBy(systemUser)
.build();
var model = modelAssembler.toModel(commandBySystemUser);
assertThat(model.getLink(CREATED_BY)).isNotPresent(); assertThat(model.getLink(CREATED_BY)).isNotPresent();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment