From f254eee8b43efc924a8272f774de4e5a8333a7f5 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 14 Apr 2014 15:07:23 -0400 Subject: [PATCH] Improve ticket branch ref deletion push handling --- src/main/java/com/gitblit/git/PatchsetReceivePack.java | 15 +++++++++++++++ 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 77d5a71..43efc54 100644 --- a/src/main/java/com/gitblit/git/PatchsetReceivePack.java +++ b/src/main/java/com/gitblit/git/PatchsetReceivePack.java @@ -309,6 +309,7 @@ } 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 @@ 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; -- Gitblit v1.9.1