fix repositoryRole systemrole check

This commit is contained in:
Eduard Heimbuch
2019-05-10 09:29:38 +02:00
parent 163cdf7a6b
commit a26f86d545

View File

@@ -3,7 +3,6 @@ package sonia.scm.api.v2.resources;
import de.otto.edison.hal.Embedded;
import de.otto.edison.hal.Links;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.ObjectFactory;
import sonia.scm.repository.RepositoryRole;
import sonia.scm.repository.RepositoryRolePermissions;
@@ -23,13 +22,12 @@ public abstract class RepositoryRoleToRepositoryRoleDtoMapper extends BaseMapper
private ResourceLinks resourceLinks;
@Override
@Mapping(source = "type", target = "system")
public abstract RepositoryRoleDto map(RepositoryRole modelObject);
@ObjectFactory
RepositoryRoleDto createDto(RepositoryRole repositoryRole) {
Links.Builder linksBuilder = linkingTo().self(resourceLinks.repositoryRole().self(repositoryRole.getName()));
if (!isSystemRole(repositoryRole.getType()) && RepositoryRolePermissions.modify().isPermitted()) {
if (!"system".equals(repositoryRole.getType()) && RepositoryRolePermissions.modify().isPermitted()) {
linksBuilder.single(link("delete", resourceLinks.repositoryRole().delete(repositoryRole.getName())));
linksBuilder.single(link("update", resourceLinks.repositoryRole().update(repositoryRole.getName())));
}
@@ -40,7 +38,4 @@ public abstract class RepositoryRoleToRepositoryRoleDtoMapper extends BaseMapper
return new RepositoryRoleDto(linksBuilder.build(), embeddedBuilder.build());
}
boolean isSystemRole(String type) {
return "system".equals(type);
}
}