From 9cae606cdaff225fe25a6c93b61645f13f80eaf4 Mon Sep 17 00:00:00 2001 From: Edwin Kempin <ekempin@google.com> Date: Tue, 27 Mar 2018 15:20:58 +0200 Subject: [PATCH] Enable UI action to toggle WIP flag for admins Change I4878f066b6 allowed administrators to toggle the WIP flag on any change but the UI action was still disabled for admins. Change-Id: I55dd6400dc07d57fe2aaaf3528ff429d5baf48ed Signed-off-by: Edwin Kempin <ekempin@google.com> --- .../server/restapi/change/SetReadyForReview.java | 13 ++++++++++--- .../server/restapi/change/SetWorkInProgress.java | 13 ++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) 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)))); } }