From 9a6a428bad30be341e4df2c6b0f77d9b9e9881ca Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 02 May 2013 09:57:19 -0400
Subject: [PATCH] Improve effective permission determination

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

diff --git a/src/main/java/com/gitblit/Constants.java b/src/main/java/com/gitblit/Constants.java
index 7663f8b..5bd5b60 100644
--- a/src/main/java/com/gitblit/Constants.java
+++ b/src/main/java/com/gitblit/Constants.java
@@ -147,6 +147,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;
+		}
 	}
 	
 	/**
@@ -416,7 +438,7 @@
 	}
 	
 	public static enum PermissionType {
-		MISSING, EXPLICIT, TEAM, REGEX, OWNER, ADMINISTRATOR;
+		MISSING, ANONYMOUS, EXPLICIT, TEAM, REGEX, OWNER, ADMINISTRATOR;
 	}
 	
 	public static enum GCStatus {

--
Gitblit v1.9.1