Merge branch 'stable-2.14' into stable-2.15
* stable-2.14:
Move assertion on protected projects into ProtectedProjects
Improve error message when protected project cannot be deleted
Change-Id: I7ec40be6851b9b395f51c4e220227219fc8c657f
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/ProtectedProjects.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/ProtectedProjects.java
index a973829..7074149 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/ProtectedProjects.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/ProtectedProjects.java
@@ -42,4 +42,11 @@
public boolean isProtected(ProjectResource rsrc) {
return isProtected(rsrc.getNameKey());
}
+
+ public void assertIsNotProtected(ProjectResource rsrc) throws CannotDeleteProjectException {
+ if (isProtected(rsrc)) {
+ throw new CannotDeleteProjectException(
+ "Cannot delete project because it is protected against deletion");
+ }
+ }
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/projectconfig/ProjectConfigDeleteHandler.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/projectconfig/ProjectConfigDeleteHandler.java
index cadd9e9..271105d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/projectconfig/ProjectConfigDeleteHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/projectconfig/ProjectConfigDeleteHandler.java
@@ -18,7 +18,6 @@
import com.google.common.base.Joiner;
import com.google.common.collect.Iterables;
import com.google.gerrit.extensions.common.ProjectInfo;
-import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.gerrit.server.project.ListChildProjects;
import com.google.gerrit.server.project.ProjectResource;
@@ -31,30 +30,20 @@
public class ProjectConfigDeleteHandler {
private final ProtectedProjects protectedProjects;
- private final SitePaths site;
private final Provider<ListChildProjects> listChildProjectsProvider;
@Inject
public ProjectConfigDeleteHandler(
- SitePaths site,
- ProtectedProjects protectedProjects,
- Provider<ListChildProjects> listChildProjectsProvider) {
- this.site = site;
+ ProtectedProjects protectedProjects, Provider<ListChildProjects> listChildProjectsProvider) {
this.protectedProjects = protectedProjects;
this.listChildProjectsProvider = listChildProjectsProvider;
}
public void assertCanDelete(ProjectResource rsrc) throws CannotDeleteProjectException {
- assertIsNotProtected(rsrc);
+ protectedProjects.assertIsNotProtected(rsrc);
assertHasNoChildProjects(rsrc);
}
- private void assertIsNotProtected(ProjectResource rsrc) throws CannotDeleteProjectException {
- if (protectedProjects.isProtected(rsrc)) {
- throw new CannotDeleteProjectException("Perhaps you meant to rm -fR " + site.site_path);
- }
- }
-
private void assertHasNoChildProjects(ProjectResource rsrc) throws CannotDeleteProjectException {
try {
List<ProjectInfo> children = listChildProjectsProvider.get().apply(rsrc);