Move #isProjectStatePermitting{Read,Write} into ProjectState

Change-Id: Ia8fec2a9b051acb7443daaa550b74bef0bc9c5b4
This commit is contained in:
Patrick Hiesel
2017-08-24 18:28:05 +02:00
parent f14482cbb5
commit bc180879bb
4 changed files with 24 additions and 13 deletions

View File

@@ -15,7 +15,23 @@
package com.google.gerrit.extensions.client; package com.google.gerrit.extensions.client;
public enum ProjectState { public enum ProjectState {
ACTIVE, ACTIVE(true, true),
READ_ONLY, READ_ONLY(true, false),
HIDDEN HIDDEN(false, false);
private final boolean permitsRead;
private final boolean permitsWrite;
ProjectState(boolean permitsRead, boolean permitsWrite) {
this.permitsRead = permitsRead;
this.permitsWrite = permitsWrite;
}
public boolean permitsRead() {
return permitsRead;
}
public boolean permitsWrite() {
return permitsWrite;
}
} }

View File

@@ -1453,9 +1453,8 @@ class ReceiveCommits {
magicBranch.dest = new Branch.NameKey(project.getNameKey(), ref); magicBranch.dest = new Branch.NameKey(project.getNameKey(), ref);
magicBranch.ctl = projectControl.controlForRef(ref); magicBranch.ctl = projectControl.controlForRef(ref);
magicBranch.perm = permissions.ref(ref); magicBranch.perm = permissions.ref(ref);
if (projectControl.getProject().getState() if (!projectControl.getProject().getState().permitsWrite()) {
!= com.google.gerrit.extensions.client.ProjectState.ACTIVE) { reject(cmd, "project state does not permit write");
reject(cmd, "project is read only");
return; return;
} }

View File

@@ -67,9 +67,7 @@ public class CreateRefControl {
if (ps == null) { if (ps == null) {
throw new NoSuchProjectException(branch.getParentKey()); throw new NoSuchProjectException(branch.getParentKey());
} }
if (!ps.getProject() if (!ps.getProject().getState().permitsWrite()) {
.getState()
.equals(com.google.gerrit.extensions.client.ProjectState.ACTIVE)) {
return "project state does not permit write"; return "project state does not permit write";
} }

View File

@@ -19,7 +19,6 @@ import static com.google.common.base.Preconditions.checkArgument;
import com.google.gerrit.common.data.Permission; import com.google.gerrit.common.data.Permission;
import com.google.gerrit.common.data.PermissionRange; import com.google.gerrit.common.data.PermissionRange;
import com.google.gerrit.common.data.PermissionRule; import com.google.gerrit.common.data.PermissionRule;
import com.google.gerrit.extensions.client.ProjectState;
import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
@@ -197,12 +196,11 @@ public class RefControl {
} }
private boolean isProjectStatePermittingWrite() { private boolean isProjectStatePermittingWrite() {
return getProjectControl().getProject().getState().equals(ProjectState.ACTIVE); return getProjectControl().getProject().getState().permitsWrite();
} }
private boolean isProjectStatePermittingRead() { private boolean isProjectStatePermittingRead() {
return getProjectControl().getProject().getState().equals(ProjectState.READ_ONLY) return getProjectControl().getProject().getState().permitsRead();
|| isProjectStatePermittingWrite();
} }
private boolean canPushWithForce() { private boolean canPushWithForce() {