summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIsmo Haataja <ismo.haataja@digia.com>2014-08-15 11:42:27 +0300
committerIsmo Haataja <ismo.haataja@digia.com>2014-10-08 07:50:38 +0200
commit0ecc600a87d5cc16429492ea91aedb447af1c028 (patch)
treef9c903a624710cd1ea224cd5ed7afde36c9cb476
parent00c4903f7e21f4ca2cf42a438c08c13823c63196 (diff)
Hide the "defer" button if a change in state INTEGRATING
The "defer" button was incorrectly visible for a change in state INTEGRATING. Now the state of a change is checked and deferring not allowed in state INTEGRATING. Task-number: QTQAINFRA-889 Change-Id: I6c4134098f875e19e85eb0c6e7b291557952cadc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java
index f1126c725f..ab6a6f0b39 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java
@@ -214,12 +214,16 @@ public class ChangeControl {
/** Can this user defer this change? */
public boolean canDefer() {
- return isOwner() // owner (aka creator) of the change can defer
+ boolean userCan = isOwner() // owner (aka creator) of the change can defer
|| getRefControl().isOwner() // branch owner can defer
|| getProjectControl().isOwner() // project owner can defer
|| getCurrentUser().getCapabilities().canAdministrateServer() // site administers are god
|| getRefControl().canDefer() // user can defer a specific ref
;
+
+ // Cannot defer changes that are being processed by the continuous
+ // integration system.
+ return userCan && change.getStatus() != Change.Status.INTEGRATING;
}
/** Can this user restore this change? */