From fbe265fa787e4be9cb63c6bae2ef30b9400d9afc Mon Sep 17 00:00:00 2001
From: Simon Harrer <simon.harrer@gmail.com>
Date: Thu, 18 Jul 2013 10:11:04 -0400
Subject: [PATCH] Fixes findbugs warning - dereferencing null in exception case

---
 src/main/java/com/gitblit/Constants.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 50 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/gitblit/Constants.java b/src/main/java/com/gitblit/Constants.java
index 7663f8b..aa3767c 100644
--- a/src/main/java/com/gitblit/Constants.java
+++ b/src/main/java/com/gitblit/Constants.java
@@ -43,6 +43,8 @@
 	public static final String NOT_FEDERATED_ROLE = "#notfederated";
 	
 	public static final String NO_ROLE = "#none";
+	
+	public static final String EXTERNAL_ACCOUNT = "#externalAccount";
 
 	public static final String PROPERTIES_FILE = "gitblit.properties";
 
@@ -56,7 +58,9 @@
 
 	public static final String RPC_PATH = "/rpc/";
 	
-	public static final String PAGES= "/pages/";
+	public static final String PAGES = "/pages/";
+	
+	public static final String SPARKLESHARE_INVITE_PATH = "/sparkleshare/";
 
 	public static final String BORDER = "***********************************************************";
 
@@ -78,13 +82,27 @@
 	
 	public static final String ISO8601 = "yyyy-MM-dd'T'HH:mm:ssZ";
 	
-	public static final String R_GITBLIT = "refs/gitblit/";
-	
 	public static final String baseFolder = "baseFolder";
 	
 	public static final String baseFolder$ = "${" + baseFolder + "}";
 	
 	public static final String contextFolder$ = "${contextFolder}";
+	
+	public static final String HEAD = "HEAD";
+
+	public static final String R_GITBLIT = "refs/gitblit/";
+	
+	public static final String R_HEADS = "refs/heads/";
+	
+	public static final String R_NOTES = "refs/notes/";
+	
+	public static final String R_CHANGES = "refs/changes/";
+	
+	public static final String R_PULL= "refs/pull/";
+
+	public static final String R_TAGS = "refs/tags/";
+	
+	public static final String R_REMOTES = "refs/remotes/";
 
 	public static String getVersion() {
 		String v = Constants.class.getPackage().getImplementationVersion();
@@ -146,6 +164,28 @@
 
 		public String toString() {
 			return name();
+		}
+		
+		public boolean isValidPermission(AccessPermission permission) {
+			switch (this) {
+			case VIEW:
+				// VIEW restriction
+				// all access permissions are valid
+				return true;
+			case CLONE:
+				// CLONE restriction
+				// only CLONE or greater access permissions are valid
+				return permission.atLeast(AccessPermission.CLONE);
+			case PUSH:
+				// PUSH restriction
+				// only PUSH or greater access permissions are valid 
+				return permission.atLeast(AccessPermission.PUSH);
+			case NONE:
+				// NO access restriction
+				// all access permissions are invalid
+				return false;
+			}
+			return false;
 		}
 	}
 	
@@ -361,7 +401,11 @@
 		private AccessPermission(String code) {
 			this.code = code;
 		}
-		
+
+		public boolean atMost(AccessPermission perm) {
+			return ordinal() <= perm.ordinal();
+		}
+
 		public boolean atLeast(AccessPermission perm) {
 			return ordinal() >= perm.ordinal();
 		}
@@ -416,7 +460,7 @@
 	}
 	
 	public static enum PermissionType {
-		MISSING, EXPLICIT, TEAM, REGEX, OWNER, ADMINISTRATOR;
+		MISSING, ANONYMOUS, EXPLICIT, TEAM, REGEX, OWNER, ADMINISTRATOR;
 	}
 	
 	public static enum GCStatus {
@@ -436,7 +480,7 @@
 	}
 	
 	public static enum AccountType {
-		LOCAL, LDAP, REDMINE;
+		LOCAL, EXTERNAL, LDAP, REDMINE, SALESFORCE, WINDOWS;
 		
 		public boolean isLocal() {
 			return this == LOCAL;

--
Gitblit v1.9.1