Remove archive flag

This commit is contained in:
Rene Pfeuffer
2019-08-20 14:23:52 +02:00
parent 68045c0f3e
commit 3e2c8b7c4b
23 changed files with 8 additions and 349 deletions

View File

@@ -19,7 +19,6 @@ public class ConfigDto extends HalRepresentation {
private String proxyUser;
private boolean enableProxy;
private String realmDescription;
private boolean enableRepositoryArchive;
private boolean disableGroupingGrid;
private String dateFormat;
private boolean anonymousAccessEnabled;

View File

@@ -5,7 +5,6 @@ import com.webcohesion.enunciate.metadata.rs.StatusCodes;
import com.webcohesion.enunciate.metadata.rs.TypeHint;
import sonia.scm.repository.NamespaceAndName;
import sonia.scm.repository.Repository;
import sonia.scm.repository.RepositoryIsNotArchivedException;
import sonia.scm.repository.RepositoryManager;
import sonia.scm.web.VndMediaType;
@@ -63,7 +62,7 @@ public class RepositoryResource {
this.dtoToRepositoryMapper = dtoToRepositoryMapper;
this.manager = manager;
this.repositoryToDtoMapper = repositoryToDtoMapper;
this.adapter = new SingleResourceManagerAdapter<>(manager, Repository.class, this::handleNotArchived);
this.adapter = new SingleResourceManagerAdapter<>(manager, Repository.class);
this.tagRootResource = tagRootResource;
this.branchRootResource = branchRootResource;
this.changesetRootResource = changesetRootResource;
@@ -212,14 +211,6 @@ public class RepositoryResource {
@Path("merge/")
public MergeResource merge() {return mergeResource.get(); }
private Optional<Response> handleNotArchived(Throwable throwable) {
if (throwable instanceof RepositoryIsNotArchivedException) {
return Optional.of(Response.status(Response.Status.PRECONDITION_FAILED).build());
} else {
return Optional.empty();
}
}
private Supplier<Repository> loadBy(String namespace, String name) {
NamespaceAndName namespaceAndName = new NamespaceAndName(namespace, name);
return () -> Optional.ofNullable(manager.get(namespaceAndName)).orElseThrow(() -> notFound(entity(namespaceAndName)));

View File

@@ -7,7 +7,6 @@ import sonia.scm.ModelObject;
import sonia.scm.NotFoundException;
import javax.ws.rs.core.Response;
import java.util.Optional;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
@@ -28,20 +27,11 @@ import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
class SingleResourceManagerAdapter<MODEL_OBJECT extends ModelObject,
DTO extends HalRepresentation> {
private final Function<Throwable, Optional<Response>> errorHandler;
protected final Manager<MODEL_OBJECT> manager;
protected final Class<MODEL_OBJECT> type;
SingleResourceManagerAdapter(Manager<MODEL_OBJECT> manager, Class<MODEL_OBJECT> type) {
this(manager, type, e -> Optional.empty());
}
SingleResourceManagerAdapter(
Manager<MODEL_OBJECT> manager,
Class<MODEL_OBJECT> type,
Function<Throwable, Optional<Response>> errorHandler) {
this.manager = manager;
this.errorHandler = errorHandler;
this.type = type;
}
@@ -74,12 +64,8 @@ class SingleResourceManagerAdapter<MODEL_OBJECT extends ModelObject,
}
private Response update(MODEL_OBJECT item) {
try {
manager.modify(item);
return Response.noContent().build();
} catch (RuntimeException ex) {
return createErrorResponse(ex);
}
manager.modify(item);
return Response.noContent().build();
}
private boolean modelObjectWasModifiedConcurrently(MODEL_OBJECT existing, MODEL_OBJECT updated) {
@@ -100,22 +86,13 @@ class SingleResourceManagerAdapter<MODEL_OBJECT extends ModelObject,
MODEL_OBJECT item = manager.get(name);
if (item != null) {
try {
manager.delete(item);
return Response.noContent().build();
} catch (RuntimeException ex) {
return createErrorResponse(ex);
}
manager.delete(item);
return Response.noContent().build();
} else {
return Response.noContent().build();
}
}
private Response createErrorResponse(RuntimeException throwable) {
return errorHandler.apply(throwable)
.orElseThrow(() -> throwable);
}
protected String getId(MODEL_OBJECT item) {
return item.getId();
}

View File

@@ -172,9 +172,6 @@ public class DefaultRepositoryManager extends AbstractRepositoryManager {
}
private void preDelete(Repository toDelete) {
if (configuration.isEnableRepositoryArchive() && !toDelete.isArchived()) {
throw new RepositoryIsNotArchivedException();
}
fireEvent(HandlerEventType.BEFORE_DELETE, toDelete);
getHandler(toDelete).delete(toDelete);
}

View File

@@ -168,8 +168,7 @@ public class AuthorizationChangedEventProducer {
}
private boolean isAuthorizationDataModified(Repository repository, Repository beforeModification) {
return repository.isArchived() != beforeModification.isArchived()
|| repository.isPublicReadable() != beforeModification.isPublicReadable()
return repository.isPublicReadable() != beforeModification.isPublicReadable()
|| !(repository.getPermissions().containsAll(beforeModification.getPermissions()) && beforeModification.getPermissions().containsAll(repository.getPermissions()));
}

View File

@@ -91,7 +91,6 @@ public class MigrateVerbsToPermissionRoles implements UpdateStep {
repository.setHealthCheckFailures(oldRepository.healthCheckFailures);
repository.setLastModified(oldRepository.lastModified);
repository.setPublicReadable(oldRepository.publicReadable);
repository.setArchived(oldRepository.archived);
return repository;
}