diff options
author | David Ostrovsky <david@ostrovsky.org> | 2014-02-12 08:01:03 +0100 |
---|---|---|
committer | David Pursehouse <david.pursehouse@sonymobile.com> | 2014-04-15 18:49:24 +0900 |
commit | 62096c7b030ed24f1561ef8163e28216cda764f9 (patch) | |
tree | 4a6f7951190c8d1c05414aa3547409fe7eba273b | |
parent | 953784a50f8fda949eb0d1d035fa0d5f4d8ef77e (diff) |
Prevent draft changes from being abandoned
When a draft change is abandoned it is currently published to all
users by setting the status to ABANDONED. Restoring the change will
effectively publish the change as /restore sets the status to NEW.
To not complicate the workflow, prevent draft changes from being
abandoned.
Change-Id: If747264fa66a2139e0d8f13987125d853ec3bed9
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java index 4959cfb0e3..b406af01a1 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Abandon.java @@ -85,6 +85,8 @@ public class Abandon implements RestModifyView<ChangeResource, Input>, throw new AuthException("abandon not permitted"); } else if (!change.getStatus().isOpen()) { throw new ResourceConflictException("change is " + status(change)); + } else if (change.getStatus() == Change.Status.DRAFT) { + throw new ResourceConflictException("draft changes cannot be abandoned"); } ChangeMessage message; @@ -141,6 +143,7 @@ public class Abandon implements RestModifyView<ChangeResource, Input>, .setLabel("Abandon") .setTitle("Abandon the change") .setVisible(resource.getChange().getStatus().isOpen() + && resource.getChange().getStatus() != Change.Status.DRAFT && resource.getControl().canAbandon()); } |