diff --git a/java/com/google/gerrit/server/restapi/change/SetReadyForReview.java b/java/com/google/gerrit/server/restapi/change/SetReadyForReview.java index f487c28602..73b56b1be4 100644 --- a/java/com/google/gerrit/server/restapi/change/SetReadyForReview.java +++ b/java/com/google/gerrit/server/restapi/change/SetReadyForReview.java @@ -14,6 +14,9 @@ package com.google.gerrit.server.restapi.change; +import static com.google.gerrit.extensions.conditions.BooleanCondition.and; +import static com.google.gerrit.extensions.conditions.BooleanCondition.or; + import com.google.gerrit.common.TimeUtil; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.ResourceConflictException; @@ -93,8 +96,12 @@ public class SetReadyForReview extends RetryingRestModifyView<ChangeResource, In .setLabel("Start Review") .setTitle("Set Ready For Review") .setVisible( - rsrc.isUserOwner() - && rsrc.getChange().getStatus() == Status.NEW - && rsrc.getChange().isWorkInProgress()); + and( + rsrc.getChange().getStatus() == Status.NEW && rsrc.getChange().isWorkInProgress(), + or( + rsrc.isUserOwner(), + permissionBackend + .currentUser() + .testCond(GlobalPermission.ADMINISTRATE_SERVER)))); } } diff --git a/java/com/google/gerrit/server/restapi/change/SetWorkInProgress.java b/java/com/google/gerrit/server/restapi/change/SetWorkInProgress.java index 7fcf6a0348..a78cbaec12 100644 --- a/java/com/google/gerrit/server/restapi/change/SetWorkInProgress.java +++ b/java/com/google/gerrit/server/restapi/change/SetWorkInProgress.java @@ -14,6 +14,9 @@ package com.google.gerrit.server.restapi.change; +import static com.google.gerrit.extensions.conditions.BooleanCondition.and; +import static com.google.gerrit.extensions.conditions.BooleanCondition.or; + import com.google.gerrit.common.TimeUtil; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.ResourceConflictException; @@ -94,8 +97,12 @@ public class SetWorkInProgress extends RetryingRestModifyView<ChangeResource, In .setLabel("WIP") .setTitle("Set Work In Progress") .setVisible( - rsrc.isUserOwner() - && rsrc.getChange().getStatus() == Status.NEW - && !rsrc.getChange().isWorkInProgress()); + and( + rsrc.getChange().getStatus() == Status.NEW && !rsrc.getChange().isWorkInProgress(), + or( + rsrc.isUserOwner(), + permissionBackend + .currentUser() + .testCond(GlobalPermission.ADMINISTRATE_SERVER)))); } }