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

Merge branch 'OZG-7605-unknown-user-in-historie' into 'main'

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

See merge request !14
parents 80c6aac2 76b011d3
No related branches found
No related tags found
1 merge request!14OZG-7605 check for any system user in historie model assembler
......@@ -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) {
......
......@@ -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();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment