diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/DeletePrivate.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/DeletePrivate.java index 71c940b8c3..001ef89ed3 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/DeletePrivate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/DeletePrivate.java @@ -14,7 +14,10 @@ package com.google.gerrit.server.change; +import static com.google.gerrit.extensions.conditions.BooleanCondition.or; + import com.google.gerrit.common.TimeUtil; +import com.google.gerrit.extensions.conditions.BooleanCondition; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.ResourceConflictException; import com.google.gerrit.extensions.restapi.Response; @@ -56,7 +59,7 @@ public class DeletePrivate protected Response applyImpl( BatchUpdate.Factory updateFactory, ChangeResource rsrc, SetPrivateOp.Input input) throws RestApiException, UpdateException { - if (!canDeletePrivate(rsrc)) { + if (!canDeletePrivate(rsrc).value()) { throw new AuthException("not allowed to unmark private"); } @@ -78,9 +81,10 @@ public class DeletePrivate return Response.none(); } - protected boolean canDeletePrivate(ChangeResource rsrc) { + protected BooleanCondition canDeletePrivate(ChangeResource rsrc) { PermissionBackend.WithUser user = permissionBackend.user(rsrc.getUser()); - return user.testOrFalse(GlobalPermission.ADMINISTRATE_SERVER) - || (rsrc.isUserOwner() && rsrc.getChange().getStatus() != Change.Status.MERGED); + return or( + rsrc.isUserOwner() && rsrc.getChange().getStatus() != Change.Status.MERGED, + user.testCond(GlobalPermission.ADMINISTRATE_SERVER)); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/DeletePrivateByPost.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/DeletePrivateByPost.java index 9cf85d1d90..2de57eb5cb 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/DeletePrivateByPost.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/DeletePrivateByPost.java @@ -14,6 +14,8 @@ package com.google.gerrit.server.change; +import static com.google.gerrit.extensions.conditions.BooleanCondition.and; + import com.google.gerrit.extensions.webui.UiAction; import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.ChangeMessagesUtil; @@ -39,6 +41,6 @@ public class DeletePrivateByPost extends DeletePrivate implements UiAction