summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/git/PatchsetReceivePack.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2014-04-14 15:07:23 -0400
committerJames Moger <james.moger@gitblit.com>2014-04-14 15:07:23 -0400
commitf254eee8b43efc924a8272f774de4e5a8333a7f5 (patch)
tree59284b5d2c0976f1a5db2a297f887845cc8f5693 /src/main/java/com/gitblit/git/PatchsetReceivePack.java
parenta7af195bed674c2f0f1a74b69cefc8be1d90572d (diff)
downloadgitblit-f254eee8b43efc924a8272f774de4e5a8333a7f5.tar.gz
gitblit-f254eee8b43efc924a8272f774de4e5a8333a7f5.zip
Improve ticket branch ref deletion push handling
Diffstat (limited to 'src/main/java/com/gitblit/git/PatchsetReceivePack.java')
-rw-r--r--src/main/java/com/gitblit/git/PatchsetReceivePack.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/com/gitblit/git/PatchsetReceivePack.java b/src/main/java/com/gitblit/git/PatchsetReceivePack.java
index 77d5a71e..43efc54a 100644
--- a/src/main/java/com/gitblit/git/PatchsetReceivePack.java
+++ b/src/main/java/com/gitblit/git/PatchsetReceivePack.java
@@ -309,6 +309,7 @@ public class PatchsetReceivePack extends GitblitReceivePack {
}
if (isPatchsetRef(cmd.getRefName()) && processPatchsets) {
+
if (ticketService == null) {
sendRejection(cmd, "Sorry, the ticket service is unavailable and can not accept patchsets at this time.");
continue;
@@ -346,6 +347,20 @@ public class PatchsetReceivePack extends GitblitReceivePack {
continue;
}
+ if (cmd.getNewId().equals(ObjectId.zeroId())) {
+ // ref deletion request
+ if (cmd.getRefName().startsWith(Constants.R_TICKET)) {
+ if (user.canDeleteRef(repository)) {
+ batch.addCommand(cmd);
+ } else {
+ sendRejection(cmd, "Sorry, you do not have permission to delete {}", cmd.getRefName());
+ }
+ } else {
+ sendRejection(cmd, "Sorry, you can not delete {}", cmd.getRefName());
+ }
+ continue;
+ }
+
if (patchsetRefCmd != null) {
sendRejection(cmd, "You may only push one patchset at a time.");
continue;