From 629806c4c04d3bfc058056069c3123fd91782639 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 27 Sep 2013 21:31:39 -0400
Subject: [PATCH] Added setting to globally disable anonymous pushes in the receive pack

---
 src/main/java/com/gitblit/Constants.java |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gitblit/Constants.java b/src/main/java/com/gitblit/Constants.java
index bd04128..3ac7082 100644
--- a/src/main/java/com/gitblit/Constants.java
+++ b/src/main/java/com/gitblit/Constants.java
@@ -19,6 +19,8 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
 import java.util.jar.Attributes;
 import java.util.jar.Manifest;
 
@@ -148,6 +150,8 @@
 	 */
 	public static enum AccessRestrictionType {
 		NONE, PUSH, CLONE, VIEW;
+		
+		private static final AccessRestrictionType [] AUTH_TYPES = { PUSH, CLONE, VIEW };
 
 		public static AccessRestrictionType fromName(String name) {
 			for (AccessRestrictionType type : values()) {
@@ -157,6 +161,13 @@
 			}
 			return NONE;
 		}
+		
+		public static List<AccessRestrictionType> choices(boolean allowAnonymousPush) {
+			if (allowAnonymousPush) {
+				return Arrays.asList(values());
+			}
+			return Arrays.asList(AUTH_TYPES);
+		}
 
 		public boolean exceeds(AccessRestrictionType type) {
 			return this.ordinal() > type.ordinal();

--
Gitblit v1.9.1