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