From 783c425b1ec6a28b62943f7fde51b6d840b99c3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Thu, 17 Jan 2019 14:25:49 +0100 Subject: [PATCH] Rename Permission -> RepositoryPermission --- .../java/sonia/scm/repository/Repository.java | 12 ++-- ...mission.java => RepositoryPermission.java} | 28 ++++---- .../scm/api/v2/resources/MapperModule.java | 2 +- .../PermissionDtoToPermissionMapper.java | 8 +-- .../v2/resources/PermissionRootResource.java | 39 +++++------ .../RepositoryCollectionResource.java | 4 +- ...itoryPermissionCollectionToDtoMapper.java} | 18 ++--- ...nDto.java => RepositoryPermissionDto.java} | 4 +- ...ssionToRepositoryPermissionDtoMapper.java} | 18 ++--- .../DefaultAuthorizationCollector.java | 7 +- .../scm/security/PermissionAssigner.java | 2 + .../resources/PermissionRootResourceTest.java | 70 +++++++++---------- ...oryRepositoryPermissionDtoMapperTest.java} | 24 +++---- .../resources/RepositoryRootResourceTest.java | 4 +- .../RepositoryToRepositoryDtoMapperTest.java | 4 +- .../DefaultRepositoryManagerPerfTest.java | 2 +- ...AuthorizationChangedEventProducerTest.java | 13 ++-- .../DefaultAuthorizationCollectorTest.java | 5 +- 18 files changed, 133 insertions(+), 131 deletions(-) rename scm-core/src/main/java/sonia/scm/repository/{Permission.java => RepositoryPermission.java} (84%) rename scm-webapp/src/main/java/sonia/scm/api/v2/resources/{PermissionCollectionToDtoMapper.java => RepositoryPermissionCollectionToDtoMapper.java} (61%) rename scm-webapp/src/main/java/sonia/scm/api/v2/resources/{PermissionDto.java => RepositoryPermissionDto.java} (89%) rename scm-webapp/src/main/java/sonia/scm/api/v2/resources/{PermissionToPermissionDtoMapper.java => RepositoryPermissionToRepositoryPermissionDtoMapper.java} (69%) rename scm-webapp/src/test/java/sonia/scm/api/v2/resources/{PermissionToPermissionDtoMapperTest.java => RepositoryPermissionToRepositoryRepositoryPermissionDtoMapperTest.java} (54%) diff --git a/scm-core/src/main/java/sonia/scm/repository/Repository.java b/scm-core/src/main/java/sonia/scm/repository/Repository.java index fd8f07df8d..622eed6ad6 100644 --- a/scm-core/src/main/java/sonia/scm/repository/Repository.java +++ b/scm-core/src/main/java/sonia/scm/repository/Repository.java @@ -81,7 +81,7 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per private Long lastModified; private String namespace; private String name; - private final Set permissions = new HashSet<>(); + private final Set permissions = new HashSet<>(); @XmlElement(name = "public") private boolean publicReadable = false; private boolean archived = false; @@ -122,7 +122,7 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per * @param permissions permissions for specific users and groups. */ public Repository(String id, String type, String namespace, String name, String contact, - String description, Permission... permissions) { + String description, RepositoryPermission... permissions) { this.id = id; this.type = type; this.namespace = namespace; @@ -201,7 +201,7 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per return new NamespaceAndName(getNamespace(), getName()); } - public Collection getPermissions() { + public Collection getPermissions() { return Collections.unmodifiableCollection(permissions); } @@ -297,16 +297,16 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per this.name = name; } - public void setPermissions(Collection permissions) { + public void setPermissions(Collection permissions) { this.permissions.clear(); this.permissions.addAll(permissions); } - public void addPermission(Permission newPermission) { + public void addPermission(RepositoryPermission newPermission) { this.permissions.add(newPermission); } - public void removePermission(Permission permission) { + public void removePermission(RepositoryPermission permission) { this.permissions.remove(permission); } diff --git a/scm-core/src/main/java/sonia/scm/repository/Permission.java b/scm-core/src/main/java/sonia/scm/repository/RepositoryPermission.java similarity index 84% rename from scm-core/src/main/java/sonia/scm/repository/Permission.java rename to scm-core/src/main/java/sonia/scm/repository/RepositoryPermission.java index 20cdc83cef..0aff771fce 100644 --- a/scm-core/src/main/java/sonia/scm/repository/Permission.java +++ b/scm-core/src/main/java/sonia/scm/repository/RepositoryPermission.java @@ -53,7 +53,7 @@ import java.io.Serializable; */ @XmlRootElement(name = "permissions") @XmlAccessorType(XmlAccessType.FIELD) -public class Permission implements PermissionObject, Serializable +public class RepositoryPermission implements PermissionObject, Serializable { private static final long serialVersionUID = -2915175031430884040L; @@ -63,41 +63,41 @@ public class Permission implements PermissionObject, Serializable private PermissionType type = PermissionType.READ; /** - * Constructs a new {@link Permission}. + * Constructs a new {@link RepositoryPermission}. * This constructor is used by JAXB. * */ - public Permission() {} + public RepositoryPermission() {} /** - * Constructs a new {@link Permission} with type = {@link PermissionType#READ} + * Constructs a new {@link RepositoryPermission} with type = {@link PermissionType#READ} * for the specified user. * * * @param name name of the user */ - public Permission(String name) + public RepositoryPermission(String name) { this(); this.name = name; } /** - * Constructs a new {@link Permission} with the specified type for + * Constructs a new {@link RepositoryPermission} with the specified type for * the given user. * * * @param name name of the user * @param type type of the permission */ - public Permission(String name, PermissionType type) + public RepositoryPermission(String name, PermissionType type) { this(name); this.type = type; } /** - * Constructs a new {@link Permission} with the specified type for + * Constructs a new {@link RepositoryPermission} with the specified type for * the given user or group. * * @@ -105,7 +105,7 @@ public class Permission implements PermissionObject, Serializable * @param type type of the permission * @param groupPermission true if the permission is a permission for a group */ - public Permission(String name, PermissionType type, boolean groupPermission) + public RepositoryPermission(String name, PermissionType type, boolean groupPermission) { this(name, type); this.groupPermission = groupPermission; @@ -114,12 +114,12 @@ public class Permission implements PermissionObject, Serializable //~--- methods -------------------------------------------------------------- /** - * Returns true if the {@link Permission} is the same as the obj argument. + * Returns true if the {@link RepositoryPermission} is the same as the obj argument. * * * @param obj the reference object with which to compare * - * @return true if the {@link Permission} is the same as the obj argument + * @return true if the {@link RepositoryPermission} is the same as the obj argument */ @Override public boolean equals(Object obj) @@ -134,7 +134,7 @@ public class Permission implements PermissionObject, Serializable return false; } - final Permission other = (Permission) obj; + final RepositoryPermission other = (RepositoryPermission) obj; return Objects.equal(name, other.name) && Objects.equal(type, other.type) @@ -142,10 +142,10 @@ public class Permission implements PermissionObject, Serializable } /** - * Returns the hash code value for the {@link Permission}. + * Returns the hash code value for the {@link RepositoryPermission}. * * - * @return the hash code value for the {@link Permission} + * @return the hash code value for the {@link RepositoryPermission} */ @Override public int hashCode() diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MapperModule.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MapperModule.java index 66eadaad7d..0be607def8 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MapperModule.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MapperModule.java @@ -27,7 +27,7 @@ public class MapperModule extends AbstractModule { bind(BranchToBranchDtoMapper.class).to(Mappers.getMapper(BranchToBranchDtoMapper.class).getClass()); bind(PermissionDtoToPermissionMapper.class).to(Mappers.getMapper(PermissionDtoToPermissionMapper.class).getClass()); - bind(PermissionToPermissionDtoMapper.class).to(Mappers.getMapper(PermissionToPermissionDtoMapper.class).getClass()); + bind(RepositoryPermissionToRepositoryPermissionDtoMapper.class).to(Mappers.getMapper(RepositoryPermissionToRepositoryPermissionDtoMapper.class).getClass()); bind(ChangesetToChangesetDtoMapper.class).to(Mappers.getMapper(ChangesetToChangesetDtoMapper.class).getClass()); bind(ChangesetToParentDtoMapper.class).to(Mappers.getMapper(ChangesetToParentDtoMapper.class).getClass()); diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionDtoToPermissionMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionDtoToPermissionMapper.java index 1e90c23aa7..8d9761c28c 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionDtoToPermissionMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionDtoToPermissionMapper.java @@ -2,20 +2,20 @@ package sonia.scm.api.v2.resources; import org.mapstruct.Mapper; import org.mapstruct.MappingTarget; -import sonia.scm.repository.Permission; +import sonia.scm.repository.RepositoryPermission; @Mapper public abstract class PermissionDtoToPermissionMapper { - public abstract Permission map(PermissionDto permissionDto); + public abstract RepositoryPermission map(RepositoryPermissionDto permissionDto); /** * this method is needed to modify an existing permission object * * @param target the target permission - * @param permissionDto the source dto + * @param repositoryPermissionDto the source dto * @return the mapped target permission object */ - public abstract void modify(@MappingTarget Permission target, PermissionDto permissionDto); + public abstract void modify(@MappingTarget RepositoryPermission target, RepositoryPermissionDto repositoryPermissionDto); } diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionRootResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionRootResource.java index 127a3f450e..1aa67bb4aa 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionRootResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionRootResource.java @@ -8,14 +8,13 @@ import lombok.extern.slf4j.Slf4j; import sonia.scm.AlreadyExistsException; import sonia.scm.NotFoundException; import sonia.scm.repository.NamespaceAndName; -import sonia.scm.repository.Permission; +import sonia.scm.repository.RepositoryPermission; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryManager; import sonia.scm.repository.RepositoryPermissions; import sonia.scm.web.VndMediaType; import javax.inject.Inject; -import javax.inject.Named; import javax.validation.Valid; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; @@ -33,24 +32,24 @@ import java.util.function.Predicate; import static sonia.scm.AlreadyExistsException.alreadyExists; import static sonia.scm.ContextEntry.ContextBuilder.entity; import static sonia.scm.NotFoundException.notFound; -import static sonia.scm.api.v2.resources.PermissionDto.GROUP_PREFIX; +import static sonia.scm.api.v2.resources.RepositoryPermissionDto.GROUP_PREFIX; @Slf4j public class PermissionRootResource { private PermissionDtoToPermissionMapper dtoToModelMapper; - private PermissionToPermissionDtoMapper modelToDtoMapper; - private PermissionCollectionToDtoMapper permissionCollectionToDtoMapper; + private RepositoryPermissionToRepositoryPermissionDtoMapper modelToDtoMapper; + private RepositoryPermissionCollectionToDtoMapper repositoryPermissionCollectionToDtoMapper; private ResourceLinks resourceLinks; private final RepositoryManager manager; @Inject - public PermissionRootResource(PermissionDtoToPermissionMapper dtoToModelMapper, PermissionToPermissionDtoMapper modelToDtoMapper, PermissionCollectionToDtoMapper permissionCollectionToDtoMapper, ResourceLinks resourceLinks, RepositoryManager manager) { + public PermissionRootResource(PermissionDtoToPermissionMapper dtoToModelMapper, RepositoryPermissionToRepositoryPermissionDtoMapper modelToDtoMapper, RepositoryPermissionCollectionToDtoMapper repositoryPermissionCollectionToDtoMapper, ResourceLinks resourceLinks, RepositoryManager manager) { this.dtoToModelMapper = dtoToModelMapper; this.modelToDtoMapper = modelToDtoMapper; - this.permissionCollectionToDtoMapper = permissionCollectionToDtoMapper; + this.repositoryPermissionCollectionToDtoMapper = repositoryPermissionCollectionToDtoMapper; this.resourceLinks = resourceLinks; this.manager = manager; } @@ -74,7 +73,7 @@ public class PermissionRootResource { @TypeHint(TypeHint.NO_CONTENT.class) @Consumes(VndMediaType.PERMISSION) @Path("") - public Response create(@PathParam("namespace") String namespace, @PathParam("name") String name,@Valid PermissionDto permission) { + public Response create(@PathParam("namespace") String namespace, @PathParam("name") String name,@Valid RepositoryPermissionDto permission) { log.info("try to add new permission: {}", permission); Repository repository = load(namespace, name); RepositoryPermissions.permissionWrite(repository).check(); @@ -101,7 +100,7 @@ public class PermissionRootResource { @ResponseCode(code = 500, condition = "internal server error") }) @Produces(VndMediaType.PERMISSION) - @TypeHint(PermissionDto.class) + @TypeHint(RepositoryPermissionDto.class) @Path("{permission-name}") public Response get(@PathParam("namespace") String namespace, @PathParam("name") String name, @PathParam("permission-name") String permissionName) { Repository repository = load(namespace, name); @@ -112,7 +111,7 @@ public class PermissionRootResource { .filter(filterPermission(permissionName)) .map(permission -> modelToDtoMapper.map(permission, repository)) .findFirst() - .orElseThrow(() -> notFound(entity(Permission.class, namespace).in(Repository.class, namespace + "/" + name))) + .orElseThrow(() -> notFound(entity(RepositoryPermission.class, namespace).in(Repository.class, namespace + "/" + name))) ).build(); } @@ -132,12 +131,12 @@ public class PermissionRootResource { @ResponseCode(code = 500, condition = "internal server error") }) @Produces(VndMediaType.PERMISSION) - @TypeHint(PermissionDto.class) + @TypeHint(RepositoryPermissionDto.class) @Path("") public Response getAll(@PathParam("namespace") String namespace, @PathParam("name") String name) { Repository repository = load(namespace, name); RepositoryPermissions.permissionRead(repository).check(); - return Response.ok(permissionCollectionToDtoMapper.map(repository)).build(); + return Response.ok(repositoryPermissionCollectionToDtoMapper.map(repository)).build(); } @@ -161,23 +160,23 @@ public class PermissionRootResource { public Response update(@PathParam("namespace") String namespace, @PathParam("name") String name, @PathParam("permission-name") String permissionName, - @Valid PermissionDto permission) { + @Valid RepositoryPermissionDto permission) { log.info("try to update the permission with name: {}. the modified permission is: {}", permissionName, permission); Repository repository = load(namespace, name); RepositoryPermissions.permissionWrite(repository).check(); String extractedPermissionName = getPermissionName(permissionName); - if (!isPermissionExist(new PermissionDto(extractedPermissionName, isGroupPermission(permissionName)), repository)) { - throw notFound(entity(Permission.class, namespace).in(Repository.class, namespace + "/" + name)); + if (!isPermissionExist(new RepositoryPermissionDto(extractedPermissionName, isGroupPermission(permissionName)), repository)) { + throw notFound(entity(RepositoryPermission.class, namespace).in(Repository.class, namespace + "/" + name)); } permission.setGroupPermission(isGroupPermission(permissionName)); if (!extractedPermissionName.equals(permission.getName())) { checkPermissionAlreadyExists(permission, repository); } - Permission existingPermission = repository.getPermissions() + RepositoryPermission existingPermission = repository.getPermissions() .stream() .filter(filterPermission(permissionName)) .findFirst() - .orElseThrow(() -> notFound(entity(Permission.class, namespace).in(Repository.class, namespace + "/" + name))); + .orElseThrow(() -> notFound(entity(RepositoryPermission.class, namespace).in(Repository.class, namespace + "/" + name))); dtoToModelMapper.modify(existingPermission, permission); manager.modify(repository); log.info("the permission with name: {} is updated.", permissionName); @@ -216,7 +215,7 @@ public class PermissionRootResource { return Response.noContent().build(); } - Predicate filterPermission(String permissionName) { + Predicate filterPermission(String permissionName) { return permission -> getPermissionName(permissionName).equals(permission.getName()) && permission.isGroupPermission() == isGroupPermission(permissionName); @@ -255,13 +254,13 @@ public class PermissionRootResource { * @param repository the repository to be inspected * @throws AlreadyExistsException if the permission already exists in the repository */ - private void checkPermissionAlreadyExists(PermissionDto permission, Repository repository) { + private void checkPermissionAlreadyExists(RepositoryPermissionDto permission, Repository repository) { if (isPermissionExist(permission, repository)) { throw alreadyExists(entity("permission", permission.getName()).in(repository)); } } - private boolean isPermissionExist(PermissionDto permission, Repository repository) { + private boolean isPermissionExist(RepositoryPermissionDto permission, Repository repository) { return repository.getPermissions() .stream() .anyMatch(p -> p.getName().equals(permission.getName()) && p.isGroupPermission() == permission.isGroupPermission()); diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java index d8d5280456..420e08fe96 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java @@ -6,7 +6,7 @@ import com.webcohesion.enunciate.metadata.rs.ResponseHeaders; import com.webcohesion.enunciate.metadata.rs.StatusCodes; import com.webcohesion.enunciate.metadata.rs.TypeHint; import org.apache.shiro.SecurityUtils; -import sonia.scm.repository.Permission; +import sonia.scm.repository.RepositoryPermission; import sonia.scm.repository.PermissionType; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryManager; @@ -100,7 +100,7 @@ public class RepositoryCollectionResource { private Repository createModelObjectFromDto(@Valid RepositoryDto repositoryDto) { Repository repository = dtoToRepositoryMapper.map(repositoryDto, null); - repository.setPermissions(singletonList(new Permission(currentUser(), PermissionType.OWNER))); + repository.setPermissions(singletonList(new RepositoryPermission(currentUser(), PermissionType.OWNER))); return repository; } diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionCollectionToDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryPermissionCollectionToDtoMapper.java similarity index 61% rename from scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionCollectionToDtoMapper.java rename to scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryPermissionCollectionToDtoMapper.java index 4789915f3d..9faad89473 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionCollectionToDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryPermissionCollectionToDtoMapper.java @@ -14,23 +14,23 @@ import static de.otto.edison.hal.Link.link; import static de.otto.edison.hal.Links.linkingTo; import static java.util.stream.Collectors.toList; -public class PermissionCollectionToDtoMapper { +public class RepositoryPermissionCollectionToDtoMapper { private final ResourceLinks resourceLinks; - private final PermissionToPermissionDtoMapper permissionToPermissionDtoMapper; + private final RepositoryPermissionToRepositoryPermissionDtoMapper repositoryPermissionToRepositoryPermissionDtoMapper; @Inject - public PermissionCollectionToDtoMapper(PermissionToPermissionDtoMapper permissionToPermissionDtoMapper, ResourceLinks resourceLinks) { + public RepositoryPermissionCollectionToDtoMapper(RepositoryPermissionToRepositoryPermissionDtoMapper repositoryPermissionToRepositoryPermissionDtoMapper, ResourceLinks resourceLinks) { this.resourceLinks = resourceLinks; - this.permissionToPermissionDtoMapper = permissionToPermissionDtoMapper; + this.repositoryPermissionToRepositoryPermissionDtoMapper = repositoryPermissionToRepositoryPermissionDtoMapper; } public HalRepresentation map(Repository repository) { - List permissionDtoList = repository.getPermissions() + List repositoryPermissionDtoList = repository.getPermissions() .stream() - .map(permission -> permissionToPermissionDtoMapper.map(permission, repository)) + .map(permission -> repositoryPermissionToRepositoryPermissionDtoMapper.map(permission, repository)) .collect(toList()); - return new HalRepresentation(createLinks(repository), embedDtos(permissionDtoList)); + return new HalRepresentation(createLinks(repository), embedDtos(repositoryPermissionDtoList)); } private Links createLinks(Repository repository) { @@ -43,9 +43,9 @@ public class PermissionCollectionToDtoMapper { return linksBuilder.build(); } - private Embedded embedDtos(List permissionDtoList) { + private Embedded embedDtos(List repositoryPermissionDtoList) { return embeddedBuilder() - .with("permissions", permissionDtoList) + .with("permissions", repositoryPermissionDtoList) .build(); } } diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionDto.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryPermissionDto.java similarity index 89% rename from scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionDto.java rename to scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryPermissionDto.java index 82405a6ac2..6e6b9fd7fc 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionDto.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryPermissionDto.java @@ -13,7 +13,7 @@ import javax.validation.constraints.Pattern; import static sonia.scm.api.v2.ValidationConstraints.USER_GROUP_PATTERN; @Getter @Setter @ToString @NoArgsConstructor -public class PermissionDto extends HalRepresentation { +public class RepositoryPermissionDto extends HalRepresentation { public static final String GROUP_PREFIX = "@"; @@ -33,7 +33,7 @@ public class PermissionDto extends HalRepresentation { private boolean groupPermission = false; - public PermissionDto(String permissionName, boolean groupPermission) { + public RepositoryPermissionDto(String permissionName, boolean groupPermission) { name = permissionName; this.groupPermission = groupPermission; } diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionToPermissionDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryPermissionToRepositoryPermissionDtoMapper.java similarity index 69% rename from scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionToPermissionDtoMapper.java rename to scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryPermissionToRepositoryPermissionDtoMapper.java index d6ab3721cf..772495beec 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionToPermissionDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryPermissionToRepositoryPermissionDtoMapper.java @@ -7,7 +7,7 @@ import org.mapstruct.Context; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.MappingTarget; -import sonia.scm.repository.Permission; +import sonia.scm.repository.RepositoryPermission; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryPermissions; @@ -16,16 +16,16 @@ import java.util.Optional; import static de.otto.edison.hal.Link.link; import static de.otto.edison.hal.Links.linkingTo; -import static sonia.scm.api.v2.resources.PermissionDto.GROUP_PREFIX; +import static sonia.scm.api.v2.resources.RepositoryPermissionDto.GROUP_PREFIX; @Mapper -public abstract class PermissionToPermissionDtoMapper { +public abstract class RepositoryPermissionToRepositoryPermissionDtoMapper { @Inject private ResourceLinks resourceLinks; @Mapping(target = "attributes", ignore = true) // We do not map HAL attributes - public abstract PermissionDto map(Permission permission, @Context Repository repository); + public abstract RepositoryPermissionDto map(RepositoryPermission permission, @Context Repository repository); @BeforeMapping @@ -40,7 +40,7 @@ public abstract class PermissionToPermissionDtoMapper { * @param repository the repository */ @AfterMapping - void appendLinks(@MappingTarget PermissionDto target, @Context Repository repository) { + void appendLinks(@MappingTarget RepositoryPermissionDto target, @Context Repository repository) { String permissionName = getUrlPermissionName(target); Links.Builder linksBuilder = linkingTo() .self(resourceLinks.permission().self(repository.getNamespace(), repository.getName(), permissionName)); @@ -51,9 +51,9 @@ public abstract class PermissionToPermissionDtoMapper { target.add(linksBuilder.build()); } - public String getUrlPermissionName(PermissionDto permissionDto) { - return Optional.of(permissionDto.getName()) - .filter(p -> !permissionDto.isGroupPermission()) - .orElse(GROUP_PREFIX + permissionDto.getName()); + public String getUrlPermissionName(RepositoryPermissionDto repositoryPermissionDto) { + return Optional.of(repositoryPermissionDto.getName()) + .filter(p -> !repositoryPermissionDto.isGroupPermission()) + .orElse(GROUP_PREFIX + repositoryPermissionDto.getName()); } } diff --git a/scm-webapp/src/main/java/sonia/scm/security/DefaultAuthorizationCollector.java b/scm-webapp/src/main/java/sonia/scm/security/DefaultAuthorizationCollector.java index 5560d77e4a..0eb9ba2b0d 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/DefaultAuthorizationCollector.java +++ b/scm-webapp/src/main/java/sonia/scm/security/DefaultAuthorizationCollector.java @@ -54,7 +54,7 @@ import sonia.scm.cache.CacheManager; import sonia.scm.group.GroupNames; import sonia.scm.group.GroupPermissions; import sonia.scm.plugin.Extension; -import sonia.scm.repository.Permission; +import sonia.scm.repository.RepositoryPermission; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryDAO; import sonia.scm.user.User; @@ -62,7 +62,6 @@ import sonia.scm.user.UserPermissions; import sonia.scm.util.Util; import java.util.Collection; -import java.util.List; import java.util.Set; //~--- JDK imports ------------------------------------------------------------ @@ -199,13 +198,13 @@ public class DefaultAuthorizationCollector implements AuthorizationCollector private void collectRepositoryPermissions(Builder builder, Repository repository, User user, GroupNames groups) { - Collection repositoryPermissions + Collection repositoryPermissions = repository.getPermissions(); if (Util.isNotEmpty(repositoryPermissions)) { boolean hasPermission = false; - for (sonia.scm.repository.Permission permission : repositoryPermissions) + for (RepositoryPermission permission : repositoryPermissions) { hasPermission = isUserPermitted(user, groups, permission); if (hasPermission) diff --git a/scm-webapp/src/main/java/sonia/scm/security/PermissionAssigner.java b/scm-webapp/src/main/java/sonia/scm/security/PermissionAssigner.java index 24895dce8c..54a82607ab 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/PermissionAssigner.java +++ b/scm-webapp/src/main/java/sonia/scm/security/PermissionAssigner.java @@ -1,5 +1,6 @@ package sonia.scm.security; +import javax.inject.Inject; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; @@ -8,6 +9,7 @@ public class PermissionAssigner { private final SecuritySystem securitySystem; + @Inject public PermissionAssigner(SecuritySystem securitySystem) { this.securitySystem = securitySystem; } diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/PermissionRootResourceTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/PermissionRootResourceTest.java index c008e0b8db..012656c4cd 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/PermissionRootResourceTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/PermissionRootResourceTest.java @@ -29,7 +29,7 @@ import org.junit.jupiter.api.TestFactory; import org.mockito.InjectMocks; import org.mockito.Mock; import sonia.scm.repository.NamespaceAndName; -import sonia.scm.repository.Permission; +import sonia.scm.repository.RepositoryPermission; import sonia.scm.repository.PermissionType; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryManager; @@ -58,7 +58,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; import static sonia.scm.api.v2.resources.DispatcherMock.createDispatcher; -import static sonia.scm.api.v2.resources.PermissionDto.GROUP_PREFIX; +import static sonia.scm.api.v2.resources.RepositoryPermissionDto.GROUP_PREFIX; @Slf4j @SubjectAware( @@ -77,14 +77,14 @@ public class PermissionRootResourceTest extends RepositoryTestBase { private static final String PATH_OF_ALL_PERMISSIONS = REPOSITORY_NAMESPACE + "/" + REPOSITORY_NAME + "/permissions/"; private static final String PATH_OF_ONE_PERMISSION = PATH_OF_ALL_PERMISSIONS + PERMISSION_NAME; private static final String PERMISSION_TEST_PAYLOAD = "{ \"name\" : \"permission_name\", \"type\" : \"READ\" }"; - private static final ArrayList TEST_PERMISSIONS = Lists + private static final ArrayList TEST_PERMISSIONS = Lists .newArrayList( - new Permission("user_write", PermissionType.WRITE, false), - new Permission("user_read", PermissionType.READ, false), - new Permission("user_owner", PermissionType.OWNER, false), - new Permission("group_read", PermissionType.READ, true), - new Permission("group_write", PermissionType.WRITE, true), - new Permission("group_owner", PermissionType.OWNER, true) + new RepositoryPermission("user_write", PermissionType.WRITE, false), + new RepositoryPermission("user_read", PermissionType.READ, false), + new RepositoryPermission("user_owner", PermissionType.OWNER, false), + new RepositoryPermission("group_read", PermissionType.READ, true), + new RepositoryPermission("group_write", PermissionType.WRITE, true), + new RepositoryPermission("group_owner", PermissionType.OWNER, true) ); private final ExpectedRequest requestGETAllPermissions = new ExpectedRequest() .description("GET all permissions") @@ -121,12 +121,12 @@ public class PermissionRootResourceTest extends RepositoryTestBase { private final ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri); @InjectMocks - private PermissionToPermissionDtoMapperImpl permissionToPermissionDtoMapper; + private RepositoryPermissionToRepositoryPermissionDtoMapperImpl permissionToPermissionDtoMapper; @InjectMocks private PermissionDtoToPermissionMapperImpl permissionDtoToPermissionMapper; - private PermissionCollectionToDtoMapper permissionCollectionToDtoMapper; + private RepositoryPermissionCollectionToDtoMapper repositoryPermissionCollectionToDtoMapper; private PermissionRootResource permissionRootResource; @@ -137,8 +137,8 @@ public class PermissionRootResourceTest extends RepositoryTestBase { @Before public void prepareEnvironment() { initMocks(this); - permissionCollectionToDtoMapper = new PermissionCollectionToDtoMapper(permissionToPermissionDtoMapper, resourceLinks); - permissionRootResource = new PermissionRootResource(permissionDtoToPermissionMapper, permissionToPermissionDtoMapper, permissionCollectionToDtoMapper, resourceLinks, repositoryManager); + repositoryPermissionCollectionToDtoMapper = new RepositoryPermissionCollectionToDtoMapper(permissionToPermissionDtoMapper, resourceLinks); + permissionRootResource = new PermissionRootResource(permissionDtoToPermissionMapper, permissionToPermissionDtoMapper, repositoryPermissionCollectionToDtoMapper, resourceLinks, repositoryManager); super.permissionRootResource = Providers.of(permissionRootResource); dispatcher = createDispatcher(getRepositoryRootResource()); subjectThreadState.bind(); @@ -207,7 +207,7 @@ public class PermissionRootResourceTest extends RepositoryTestBase { @Test public void shouldGetPermissionByName() throws URISyntaxException { createUserWithRepositoryAndPermissions(TEST_PERMISSIONS, PERMISSION_READ); - Permission expectedPermission = TEST_PERMISSIONS.get(0); + RepositoryPermission expectedPermission = TEST_PERMISSIONS.get(0); assertExpectedRequest(requestGETPermission .expectedResponseStatus(200) .path(PATH_OF_ALL_PERMISSIONS + expectedPermission.getName()) @@ -215,8 +215,8 @@ public class PermissionRootResourceTest extends RepositoryTestBase { String body = response.getContentAsString(); ObjectMapper mapper = new ObjectMapper(); try { - PermissionDto actualPermissionDto = mapper.readValue(body, PermissionDto.class); - assertThat(actualPermissionDto) + RepositoryPermissionDto actualRepositoryPermissionDto = mapper.readValue(body, RepositoryPermissionDto.class); + assertThat(actualRepositoryPermissionDto) .as("response payload match permission object model") .isEqualToComparingFieldByFieldRecursively(getExpectedPermissionDto(expectedPermission, PERMISSION_READ)) ; @@ -259,10 +259,10 @@ public class PermissionRootResourceTest extends RepositoryTestBase { @Test public void shouldGetCreatedPermissions() throws URISyntaxException { createUserWithRepositoryAndPermissions(TEST_PERMISSIONS, PERMISSION_WRITE); - Permission newPermission = new Permission("new_group_perm", PermissionType.WRITE, true); - ArrayList permissions = Lists.newArrayList(TEST_PERMISSIONS); + RepositoryPermission newPermission = new RepositoryPermission("new_group_perm", PermissionType.WRITE, true); + ArrayList permissions = Lists.newArrayList(TEST_PERMISSIONS); permissions.add(newPermission); - ImmutableList expectedPermissions = ImmutableList.copyOf(permissions); + ImmutableList expectedPermissions = ImmutableList.copyOf(permissions); assertExpectedRequest(requestPOSTPermission .content("{\"name\" : \"" + newPermission.getName() + "\" , \"type\" : \"WRITE\" , \"groupPermission\" : true}") .expectedResponseStatus(201) @@ -276,7 +276,7 @@ public class PermissionRootResourceTest extends RepositoryTestBase { @Test public void shouldNotAddExistingPermission() throws URISyntaxException { createUserWithRepositoryAndPermissions(TEST_PERMISSIONS, PERMISSION_WRITE); - Permission newPermission = TEST_PERMISSIONS.get(0); + RepositoryPermission newPermission = TEST_PERMISSIONS.get(0); assertExpectedRequest(requestPOSTPermission .content("{\"name\" : \"" + newPermission.getName() + "\" , \"type\" : \"WRITE\" , \"groupPermission\" : false}") .expectedResponseStatus(409) @@ -286,10 +286,10 @@ public class PermissionRootResourceTest extends RepositoryTestBase { @Test public void shouldGetUpdatedPermissions() throws URISyntaxException { createUserWithRepositoryAndPermissions(TEST_PERMISSIONS, PERMISSION_WRITE); - Permission modifiedPermission = TEST_PERMISSIONS.get(0); + RepositoryPermission modifiedPermission = TEST_PERMISSIONS.get(0); // modify the type to owner modifiedPermission.setType(PermissionType.OWNER); - ImmutableList expectedPermissions = ImmutableList.copyOf(TEST_PERMISSIONS); + ImmutableList expectedPermissions = ImmutableList.copyOf(TEST_PERMISSIONS); assertExpectedRequest(requestPUTPermission .content("{\"name\" : \"" + modifiedPermission.getName() + "\" , \"type\" : \"OWNER\" , \"groupPermission\" : false}") .path(PATH_OF_ALL_PERMISSIONS + modifiedPermission.getName()) @@ -305,8 +305,8 @@ public class PermissionRootResourceTest extends RepositoryTestBase { @Test public void shouldDeletePermissions() throws URISyntaxException { createUserWithRepositoryAndPermissions(TEST_PERMISSIONS, PERMISSION_OWNER); - Permission deletedPermission = TEST_PERMISSIONS.get(0); - ImmutableList expectedPermissions = ImmutableList.copyOf(TEST_PERMISSIONS.subList(1, TEST_PERMISSIONS.size())); + RepositoryPermission deletedPermission = TEST_PERMISSIONS.get(0); + ImmutableList expectedPermissions = ImmutableList.copyOf(TEST_PERMISSIONS.subList(1, TEST_PERMISSIONS.size())); assertExpectedRequest(requestDELETEPermission .path(PATH_OF_ALL_PERMISSIONS + deletedPermission.getName()) .expectedResponseStatus(204) @@ -320,8 +320,8 @@ public class PermissionRootResourceTest extends RepositoryTestBase { @Test public void deletingNotExistingPermissionShouldProcess() throws URISyntaxException { createUserWithRepositoryAndPermissions(TEST_PERMISSIONS, PERMISSION_OWNER); - Permission deletedPermission = TEST_PERMISSIONS.get(0); - ImmutableList expectedPermissions = ImmutableList.copyOf(TEST_PERMISSIONS.subList(1, TEST_PERMISSIONS.size())); + RepositoryPermission deletedPermission = TEST_PERMISSIONS.get(0); + ImmutableList expectedPermissions = ImmutableList.copyOf(TEST_PERMISSIONS.subList(1, TEST_PERMISSIONS.size())); assertExpectedRequest(requestDELETEPermission .path(PATH_OF_ALL_PERMISSIONS + deletedPermission.getName()) .expectedResponseStatus(204) @@ -340,7 +340,7 @@ public class PermissionRootResourceTest extends RepositoryTestBase { assertGettingExpectedPermissions(expectedPermissions, PERMISSION_READ); } - private void assertGettingExpectedPermissions(ImmutableList expectedPermissions, String userPermission) throws URISyntaxException { + private void assertGettingExpectedPermissions(ImmutableList expectedPermissions, String userPermission) throws URISyntaxException { assertExpectedRequest(requestGETAllPermissions .expectedResponseStatus(200) .responseValidator((response) -> { @@ -349,16 +349,16 @@ public class PermissionRootResourceTest extends RepositoryTestBase { try { HalRepresentation halRepresentation = mapper.readValue(body, HalRepresentation.class); List actualPermissionDtos = halRepresentation.getEmbedded().getItemsBy("permissions", HalRepresentation.class); - List permissionDtoStream = actualPermissionDtos.stream() + List repositoryPermissionDtoStream = actualPermissionDtos.stream() .map(hal -> { - PermissionDto result = new PermissionDto(); + RepositoryPermissionDto result = new RepositoryPermissionDto(); result.setName(hal.getAttribute("name").asText()); result.setType(hal.getAttribute("type").asText()); result.setGroupPermission(hal.getAttribute("groupPermission").asBoolean()); result.add(hal.getLinks()); return result; }).collect(Collectors.toList()); - assertThat(permissionDtoStream) + assertThat(repositoryPermissionDtoStream) .as("response payload match permission object models") .hasSize(expectedPermissions.size()) .usingRecursiveFieldByFieldElementComparator() @@ -371,15 +371,15 @@ public class PermissionRootResourceTest extends RepositoryTestBase { ); } - private PermissionDto[] getExpectedPermissionDtos(ArrayList permissions, String userPermission) { + private RepositoryPermissionDto[] getExpectedPermissionDtos(ArrayList permissions, String userPermission) { return permissions .stream() .map(p -> getExpectedPermissionDto(p, userPermission)) - .toArray(PermissionDto[]::new); + .toArray(RepositoryPermissionDto[]::new); } - private PermissionDto getExpectedPermissionDto(Permission permission, String userPermission) { - PermissionDto result = new PermissionDto(); + private RepositoryPermissionDto getExpectedPermissionDto(RepositoryPermission permission, String userPermission) { + RepositoryPermissionDto result = new RepositoryPermissionDto(); result.setName(permission.getName()); result.setGroupPermission(permission.isGroupPermission()); result.setType(permission.getType().name()); @@ -411,7 +411,7 @@ public class PermissionRootResourceTest extends RepositoryTestBase { return mockRepository; } - private void createUserWithRepositoryAndPermissions(ArrayList permissions, String userPermission) { + private void createUserWithRepositoryAndPermissions(ArrayList permissions, String userPermission) { createUserWithRepository(userPermission).setPermissions(permissions); } diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/PermissionToPermissionDtoMapperTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryPermissionToRepositoryRepositoryPermissionDtoMapperTest.java similarity index 54% rename from scm-webapp/src/test/java/sonia/scm/api/v2/resources/PermissionToPermissionDtoMapperTest.java rename to scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryPermissionToRepositoryRepositoryPermissionDtoMapperTest.java index 31c2f0ec31..9a1ab148a3 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/PermissionToPermissionDtoMapperTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryPermissionToRepositoryRepositoryPermissionDtoMapperTest.java @@ -7,7 +7,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.junit.MockitoJUnitRunner; -import sonia.scm.repository.Permission; +import sonia.scm.repository.RepositoryPermission; import sonia.scm.repository.PermissionType; import sonia.scm.repository.Repository; @@ -19,7 +19,7 @@ import static org.assertj.core.api.Assertions.assertThat; @SubjectAware( configuration = "classpath:sonia/scm/repository/shiro.ini" ) -public class PermissionToPermissionDtoMapperTest { +public class RepositoryPermissionToRepositoryRepositoryPermissionDtoMapperTest { @Rule public ShiroRule shiro = new ShiroRule(); @@ -30,31 +30,31 @@ public class PermissionToPermissionDtoMapperTest { private final ResourceLinks resourceLinks = ResourceLinksMock.createMock(baseUri); @InjectMocks - PermissionToPermissionDtoMapperImpl mapper; + RepositoryPermissionToRepositoryPermissionDtoMapperImpl mapper; @Test @SubjectAware(username = "trillian", password = "secret") public void shouldMapGroupPermissionCorrectly() { Repository repository = getDummyRepository(); - Permission permission = new Permission("42", PermissionType.OWNER, true); + RepositoryPermission permission = new RepositoryPermission("42", PermissionType.OWNER, true); - PermissionDto permissionDto = mapper.map(permission, repository); + RepositoryPermissionDto repositoryPermissionDto = mapper.map(permission, repository); - assertThat(permissionDto.getLinks().getLinkBy("self").isPresent()).isTrue(); - assertThat(permissionDto.getLinks().getLinkBy("self").get().getHref()).contains("@42"); + assertThat(repositoryPermissionDto.getLinks().getLinkBy("self").isPresent()).isTrue(); + assertThat(repositoryPermissionDto.getLinks().getLinkBy("self").get().getHref()).contains("@42"); } @Test @SubjectAware(username = "trillian", password = "secret") public void shouldMapNonGroupPermissionCorrectly() { Repository repository = getDummyRepository(); - Permission permission = new Permission("42", PermissionType.OWNER, false); + RepositoryPermission permission = new RepositoryPermission("42", PermissionType.OWNER, false); - PermissionDto permissionDto = mapper.map(permission, repository); + RepositoryPermissionDto repositoryPermissionDto = mapper.map(permission, repository); - assertThat(permissionDto.getLinks().getLinkBy("self").isPresent()).isTrue(); - assertThat(permissionDto.getLinks().getLinkBy("self").get().getHref()).contains("42"); - assertThat(permissionDto.getLinks().getLinkBy("self").get().getHref()).doesNotContain("@"); + assertThat(repositoryPermissionDto.getLinks().getLinkBy("self").isPresent()).isTrue(); + assertThat(repositoryPermissionDto.getLinks().getLinkBy("self").get().getHref()).contains("42"); + assertThat(repositoryPermissionDto.getLinks().getLinkBy("self").get().getHref()).doesNotContain("@"); } private Repository getDummyRepository() { diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java index fe403088f2..1677be95b1 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryRootResourceTest.java @@ -18,7 +18,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import sonia.scm.PageResult; import sonia.scm.repository.NamespaceAndName; -import sonia.scm.repository.Permission; +import sonia.scm.repository.RepositoryPermission; import sonia.scm.repository.PermissionType; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryIsNotArchivedException; @@ -302,7 +302,7 @@ public class RepositoryRootResourceTest extends RepositoryTestBase { @Test public void shouldNotOverwriteExistingPermissionsOnUpdate() throws Exception { Repository existingRepository = mockRepository("space", "repo"); - existingRepository.setPermissions(singletonList(new Permission("user", PermissionType.READ))); + existingRepository.setPermissions(singletonList(new RepositoryPermission("user", PermissionType.READ))); URL url = Resources.getResource("sonia/scm/api/v2/repository-test-update.json"); byte[] repository = Resources.toByteArray(url); diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryToRepositoryDtoMapperTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryToRepositoryDtoMapperTest.java index 1ddae1d107..9bf70093fd 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryToRepositoryDtoMapperTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/RepositoryToRepositoryDtoMapperTest.java @@ -10,7 +10,7 @@ import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import sonia.scm.repository.HealthCheckFailure; -import sonia.scm.repository.Permission; +import sonia.scm.repository.RepositoryPermission; import sonia.scm.repository.PermissionType; import sonia.scm.repository.Repository; import sonia.scm.repository.api.Command; @@ -238,7 +238,7 @@ public class RepositoryToRepositoryDtoMapperTest { repository.setId("1"); repository.setCreationDate(System.currentTimeMillis()); repository.setHealthCheckFailures(singletonList(new HealthCheckFailure("1", "summary", "url", "failure"))); - repository.setPermissions(singletonList(new Permission("permission", PermissionType.READ))); + repository.setPermissions(singletonList(new RepositoryPermission("permission", PermissionType.READ))); return repository; } diff --git a/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerPerfTest.java b/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerPerfTest.java index 9d03fa02ca..146810e787 100644 --- a/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerPerfTest.java +++ b/scm-webapp/src/test/java/sonia/scm/repository/DefaultRepositoryManagerPerfTest.java @@ -184,7 +184,7 @@ private long calculateAverage(List times) { private Repository createTestRepository(int number) { Repository repository = new Repository(keyGenerator.createKey(), REPOSITORY_TYPE, "namespace", "repo-" + number); - repository.addPermission(new Permission("trillian", PermissionType.READ)); + repository.addPermission(new RepositoryPermission("trillian", PermissionType.READ)); return repository; } diff --git a/scm-webapp/src/test/java/sonia/scm/security/AuthorizationChangedEventProducerTest.java b/scm-webapp/src/test/java/sonia/scm/security/AuthorizationChangedEventProducerTest.java index 17e0a8ed52..ab8ce5dce8 100644 --- a/scm-webapp/src/test/java/sonia/scm/security/AuthorizationChangedEventProducerTest.java +++ b/scm-webapp/src/test/java/sonia/scm/security/AuthorizationChangedEventProducerTest.java @@ -43,6 +43,7 @@ import sonia.scm.repository.PermissionType; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryEvent; import sonia.scm.repository.RepositoryModificationEvent; +import sonia.scm.repository.RepositoryPermission; import sonia.scm.repository.RepositoryTestData; import sonia.scm.user.User; import sonia.scm.user.UserEvent; @@ -173,10 +174,10 @@ public class AuthorizationChangedEventProducerTest { { Repository repositoryModified = RepositoryTestData.createHeartOfGold(); repositoryModified.setName("test123"); - repositoryModified.setPermissions(Lists.newArrayList(new sonia.scm.repository.Permission("test"))); + repositoryModified.setPermissions(Lists.newArrayList(new RepositoryPermission("test"))); Repository repository = RepositoryTestData.createHeartOfGold(); - repository.setPermissions(Lists.newArrayList(new sonia.scm.repository.Permission("test"))); + repository.setPermissions(Lists.newArrayList(new RepositoryPermission("test"))); producer.onEvent(new RepositoryModificationEvent(HandlerEventType.BEFORE_CREATE, repositoryModified, repository)); assertEventIsNotFired(); @@ -184,18 +185,18 @@ public class AuthorizationChangedEventProducerTest { producer.onEvent(new RepositoryModificationEvent(HandlerEventType.CREATE, repositoryModified, repository)); assertEventIsNotFired(); - repositoryModified.setPermissions(Lists.newArrayList(new sonia.scm.repository.Permission("test"))); + repositoryModified.setPermissions(Lists.newArrayList(new RepositoryPermission("test"))); producer.onEvent(new RepositoryModificationEvent(HandlerEventType.CREATE, repositoryModified, repository)); assertEventIsNotFired(); - repositoryModified.setPermissions(Lists.newArrayList(new sonia.scm.repository.Permission("test123"))); + repositoryModified.setPermissions(Lists.newArrayList(new RepositoryPermission("test123"))); producer.onEvent(new RepositoryModificationEvent(HandlerEventType.CREATE, repositoryModified, repository)); assertGlobalEventIsFired(); resetStoredEvent(); repositoryModified.setPermissions( - Lists.newArrayList(new sonia.scm.repository.Permission("test", PermissionType.READ, true)) + Lists.newArrayList(new RepositoryPermission("test", PermissionType.READ, true)) ); producer.onEvent(new RepositoryModificationEvent(HandlerEventType.CREATE, repositoryModified, repository)); assertGlobalEventIsFired(); @@ -203,7 +204,7 @@ public class AuthorizationChangedEventProducerTest { resetStoredEvent(); repositoryModified.setPermissions( - Lists.newArrayList(new sonia.scm.repository.Permission("test", PermissionType.WRITE)) + Lists.newArrayList(new RepositoryPermission("test", PermissionType.WRITE)) ); producer.onEvent(new RepositoryModificationEvent(HandlerEventType.CREATE, repositoryModified, repository)); assertGlobalEventIsFired(); diff --git a/scm-webapp/src/test/java/sonia/scm/security/DefaultAuthorizationCollectorTest.java b/scm-webapp/src/test/java/sonia/scm/security/DefaultAuthorizationCollectorTest.java index 92e3ba71e6..532768f39f 100644 --- a/scm-webapp/src/test/java/sonia/scm/security/DefaultAuthorizationCollectorTest.java +++ b/scm-webapp/src/test/java/sonia/scm/security/DefaultAuthorizationCollectorTest.java @@ -52,6 +52,7 @@ import sonia.scm.group.GroupNames; import sonia.scm.repository.PermissionType; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryDAO; +import sonia.scm.repository.RepositoryPermission; import sonia.scm.repository.RepositoryTestData; import sonia.scm.user.User; import sonia.scm.user.UserTestData; @@ -192,10 +193,10 @@ public class DefaultAuthorizationCollectorTest { authenticate(UserTestData.createTrillian(), group); Repository heartOfGold = RepositoryTestData.createHeartOfGold(); heartOfGold.setId("one"); - heartOfGold.setPermissions(Lists.newArrayList(new sonia.scm.repository.Permission("trillian"))); + heartOfGold.setPermissions(Lists.newArrayList(new RepositoryPermission("trillian"))); Repository puzzle42 = RepositoryTestData.create42Puzzle(); puzzle42.setId("two"); - sonia.scm.repository.Permission permission = new sonia.scm.repository.Permission(group, PermissionType.WRITE, true); + RepositoryPermission permission = new RepositoryPermission(group, PermissionType.WRITE, true); puzzle42.setPermissions(Lists.newArrayList(permission)); when(repositoryDAO.getAll()).thenReturn(Lists.newArrayList(heartOfGold, puzzle42));