From 13417cf9c6eec555b51da49742e47939d2f5715b Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 19 Oct 2012 22:47:33 -0400
Subject: [PATCH] Exclude submodules from zip downloads (issue 151)

---
 src/com/gitblit/Constants.java |  178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 168 insertions(+), 10 deletions(-)

diff --git a/src/com/gitblit/Constants.java b/src/com/gitblit/Constants.java
index 2514305..0e68355 100644
--- a/src/com/gitblit/Constants.java
+++ b/src/com/gitblit/Constants.java
@@ -15,6 +15,11 @@
  */
 package com.gitblit;
 
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+
 /**
  * Constant values used by Gitblit.
  * 
@@ -29,7 +34,7 @@
 
 	// The build script extracts this exact line so be careful editing it
 	// and only use A-Z a-z 0-9 .-_ in the string.
-	public static final String VERSION = "0.7.0-SNAPSHOT";
+	public static final String VERSION = "1.2.0-SNAPSHOT";
 
 	// The build script extracts this exact line so be careful editing it
 	// and only use A-Z a-z 0-9 .-_ in the string.
@@ -37,11 +42,17 @@
 
 	// The build script extracts this exact line so be careful editing it
 	// and only use A-Z a-z 0-9 .-_ in the string.
-	public static final String JGIT_VERSION = "JGit 1.1.0 (201109151100-r)";
+	public static final String JGIT_VERSION = "JGit 2.1.0 (201209190230-r)";
 
 	public static final String ADMIN_ROLE = "#admin";
+	
+	public static final String FORK_ROLE = "#fork";
+	
+	public static final String CREATE_ROLE = "#create";
 
 	public static final String NOT_FEDERATED_ROLE = "#notfederated";
+	
+	public static final String NO_ROLE = "#none";
 
 	public static final String PROPERTIES_FILE = "gitblit.properties";
 
@@ -54,13 +65,27 @@
 	public static final String FEDERATION_PATH = "/federation/";
 
 	public static final String RPC_PATH = "/rpc/";
+	
+	public static final String PAGES= "/pages/";
 
 	public static final String BORDER = "***********************************************************";
 
 	public static final String FEDERATION_USER = "$gitblit";
 
 	public static final String PROPOSAL_EXT = ".json";
-
+	
+	public static final String ENCODING = "UTF-8";
+	
+	public static final int LEN_SHORTLOG = 80;
+	
+	public static final int LEN_SHORTLOG_REFS = 60;
+	
+	public static final String DEFAULT_BRANCH = "default";
+	
+	public static final String CONFIG_GITBLIT = "gitblit";
+	
+	public static final String CONFIG_CUSTOM_FIELDS = "customFields";
+	
 	public static String getGitBlitVersion() {
 		return NAME + " v" + VERSION;
 	}
@@ -92,6 +117,28 @@
 			return name();
 		}
 	}
+	
+	/**
+	 * Enumeration representing the types of authorization control for an
+	 * access restricted resource.
+	 */
+	public static enum AuthorizationControl {
+		AUTHENTICATED, NAMED;
+		
+		public static AuthorizationControl fromName(String name) {
+			for (AuthorizationControl type : values()) {
+				if (type.name().equalsIgnoreCase(name)) {
+					return type;
+				}
+			}
+			return NAMED;
+		}
+		
+		public String toString() {
+			return name();
+		}
+	}
+
 
 	/**
 	 * Enumeration representing the types of federation tokens.
@@ -117,7 +164,7 @@
 	 * Enumeration representing the types of federation requests.
 	 */
 	public static enum FederationRequest {
-		POKE, PROPOSAL, PULL_REPOSITORIES, PULL_USERS, PULL_SETTINGS, STATUS;
+		POKE, PROPOSAL, PULL_REPOSITORIES, PULL_USERS, PULL_TEAMS, PULL_SETTINGS, PULL_SCRIPTS, STATUS;
 
 		public static FederationRequest fromName(String name) {
 			for (FederationRequest type : values()) {
@@ -201,11 +248,15 @@
 	 * a client.
 	 */
 	public static enum RpcRequest {
-		LIST_REPOSITORIES, LIST_BRANCHES, CREATE_REPOSITORY, EDIT_REPOSITORY, DELETE_REPOSITORY,
-		LIST_USERS, CREATE_USER, EDIT_USER, DELETE_USER, LIST_REPOSITORY_MEMBERS,
-		SET_REPOSITORY_MEMBERS, LIST_FEDERATION_REGISTRATIONS, LIST_FEDERATION_RESULTS,
-		LIST_FEDERATION_PROPOSALS, LIST_FEDERATION_SETS, LIST_SETTINGS, EDIT_SETTINGS,
-		LIST_STATUS;
+		// Order is important here.  anything above LIST_SETTINGS requires
+		// administrator privileges and web.allowRpcManagement.
+		CLEAR_REPOSITORY_CACHE, GET_PROTOCOL, LIST_REPOSITORIES, LIST_BRANCHES, LIST_SETTINGS,
+		CREATE_REPOSITORY, EDIT_REPOSITORY, DELETE_REPOSITORY, 
+		LIST_USERS, CREATE_USER, EDIT_USER, DELETE_USER, 
+		LIST_TEAMS, CREATE_TEAM, EDIT_TEAM, DELETE_TEAM,
+		LIST_REPOSITORY_MEMBERS, SET_REPOSITORY_MEMBERS, LIST_REPOSITORY_TEAMS, SET_REPOSITORY_TEAMS, 
+		LIST_FEDERATION_REGISTRATIONS, LIST_FEDERATION_RESULTS, LIST_FEDERATION_PROPOSALS, LIST_FEDERATION_SETS,
+		EDIT_SETTINGS, LIST_STATUS;
 
 		public static RpcRequest fromName(String name) {
 			for (RpcRequest type : values()) {
@@ -214,7 +265,7 @@
 				}
 			}
 			return null;
-		}
+		}		
 
 		public boolean exceeds(RpcRequest type) {
 			return this.ordinal() > type.ordinal();
@@ -225,4 +276,111 @@
 			return name();
 		}
 	}
+
+	/**
+	 * Enumeration of the search types.
+	 */
+	public static enum SearchType {
+		AUTHOR, COMMITTER, COMMIT;
+	
+		public static SearchType forName(String name) {
+			for (SearchType type : values()) {
+				if (type.name().equalsIgnoreCase(name)) {
+					return type;
+				}
+			}
+			return COMMIT;
+		}
+	
+		@Override
+		public String toString() {
+			return name().toLowerCase();
+		}
+	}
+	
+	/**
+	 * The types of objects that can be indexed and queried.
+	 */
+	public static enum SearchObjectType {
+		commit, blob, issue;
+
+		static SearchObjectType fromName(String name) {
+			for (SearchObjectType value : values()) {
+				if (value.name().equals(name)) {
+					return value;
+				}
+			}
+			return null;
+		}
+	}
+	
+	/**
+	 * The access permissions available for a repository. 
+	 */
+	public static enum AccessPermission {
+		NONE("N"), VIEW("V"), CLONE("R"), PUSH("RW"), CREATE("RWC"), DELETE("RWD"), REWIND("RW+");
+		
+		public static final AccessPermission [] NEWPERMISSIONS = { VIEW, CLONE, PUSH, CREATE, DELETE, REWIND };
+		
+		public static AccessPermission LEGACY = REWIND;
+		
+		public final String code;
+		
+		private AccessPermission(String code) {
+			this.code = code;
+		}
+		
+		public boolean atLeast(AccessPermission perm) {
+			return ordinal() >= perm.ordinal();
+		}
+
+		public boolean exceeds(AccessPermission perm) {
+			return ordinal() > perm.ordinal();
+		}
+		
+		public String asRole(String repository) {
+			return code + ":" + repository;
+		}
+		
+		@Override
+		public String toString() {
+			return code;
+		}
+		
+		public static AccessPermission permissionFromRole(String role) {
+			String [] fields = role.split(":", 2);
+			if (fields.length == 1) {
+				// legacy/undefined assume full permissions
+				return AccessPermission.LEGACY;
+			} else {
+				// code:repository
+				return AccessPermission.fromCode(fields[0]);
+			}
+		}
+		
+		public static String repositoryFromRole(String role) {
+			String [] fields = role.split(":", 2);
+			if (fields.length == 1) {
+				// legacy/undefined assume full permissions
+				return role;
+			} else {
+				// code:repository
+				return fields[1];
+			}
+		}
+		
+		public static AccessPermission fromCode(String code) {
+			for (AccessPermission perm : values()) {
+				if (perm.code.equalsIgnoreCase(code)) {
+					return perm;
+				}
+			}
+			return AccessPermission.NONE;
+		}
+	}
+	
+	@Documented
+	@Retention(RetentionPolicy.RUNTIME)
+	public @interface Unused {
+	}
 }

--
Gitblit v1.9.1