From 30f9d25d77ccb5cd978d4cf8fa389ec819e90e95 Mon Sep 17 00:00:00 2001
From: Philip L. McMahon <philip.l.mcmahon@gmail.com>
Date: Fri, 27 Jan 2012 02:02:19 -0500
Subject: [PATCH] Correct update of HEAD symbolic reference when target is a tag.

---
 src/com/gitblit/GitFilter.java |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/com/gitblit/GitFilter.java b/src/com/gitblit/GitFilter.java
index 3011413..a7f0fe7 100644
--- a/src/com/gitblit/GitFilter.java
+++ b/src/com/gitblit/GitFilter.java
@@ -61,7 +61,7 @@
 	 * Analyze the url and returns the action of the request. Return values are
 	 * either "/git-receive-pack" or "/git-upload-pack".
 	 * 
-	 * @param url
+	 * @param serverUrl
 	 * @return action of the request
 	 */
 	@Override
@@ -74,6 +74,8 @@
 			} else if (suffix.contains("?service=git-receive-pack")) {
 				return gitReceivePack;
 			} else if (suffix.contains("?service=git-upload-pack")) {
+				return gitUploadPack;
+			} else {
 				return gitUploadPack;
 			}
 		}
@@ -106,11 +108,12 @@
 			// Git Servlet disabled
 			return false;
 		}
-		if (repository.isFrozen || repository.accessRestriction.atLeast(AccessRestrictionType.PUSH)) {
-			boolean authorizedUser = user.canAccessRepository(repository.name);
+		boolean readOnly = repository.isFrozen;
+		if (readOnly || repository.accessRestriction.atLeast(AccessRestrictionType.PUSH)) {
+			boolean authorizedUser = user.canAccessRepository(repository);
 			if (action.equals(gitReceivePack)) {
 				// Push request
-				if (!repository.isFrozen && authorizedUser) {
+				if (!readOnly && authorizedUser) {
 					// clone-restricted or push-authorized
 					return true;
 				} else {

--
Gitblit v1.9.1