From 8427e93f25fb79bc39dbd31ce13fab637e7cfdff Mon Sep 17 00:00:00 2001
From: Jeroen Baten <jeroen@jeroenbaten.nl>
Date: Fri, 04 Jan 2013 11:34:24 -0500
Subject: [PATCH] Completed Dutch translation
---
src/com/gitblit/models/RegistrantAccessPermission.java | 104 +++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 95 insertions(+), 9 deletions(-)
diff --git a/src/com/gitblit/models/RegistrantAccessPermission.java b/src/com/gitblit/models/RegistrantAccessPermission.java
index 4a560d4..8f4049a 100644
--- a/src/com/gitblit/models/RegistrantAccessPermission.java
+++ b/src/com/gitblit/models/RegistrantAccessPermission.java
@@ -18,6 +18,7 @@
import java.io.Serializable;
import com.gitblit.Constants.AccessPermission;
+import com.gitblit.Constants.PermissionType;
import com.gitblit.Constants.RegistrantType;
import com.gitblit.utils.StringUtils;
@@ -32,31 +33,116 @@
public String registrant;
public AccessPermission permission;
- public RegistrantType type;
- public boolean isExplicit;
-
+ public RegistrantType registrantType;
+ public PermissionType permissionType;
+ public boolean mutable;
+ public String source;
+
public RegistrantAccessPermission() {
- isExplicit = true;
+ }
+
+ public RegistrantAccessPermission(RegistrantType registrantType) {
+ this.registrantType = registrantType;
+ this.permissionType = PermissionType.EXPLICIT;
+ this.mutable = true;
}
- public RegistrantAccessPermission(String registrant, AccessPermission permission, boolean isExplicit, RegistrantType type) {
+ public RegistrantAccessPermission(String registrant, AccessPermission permission, PermissionType permissionType, RegistrantType registrantType, String source, boolean mutable) {
this.registrant = registrant;
this.permission = permission;
- this.isExplicit = isExplicit;
- this.type = type;
+ this.permissionType = permissionType;
+ this.registrantType = registrantType;
+ this.source = source;
+ this.mutable = mutable;
+ }
+
+ public boolean isAdmin() {
+ return PermissionType.ADMINISTRATOR.equals(permissionType);
+ }
+
+ public boolean isOwner() {
+ return PermissionType.OWNER.equals(permissionType);
+ }
+
+ public boolean isExplicit() {
+ return PermissionType.EXPLICIT.equals(permissionType);
+ }
+
+ public boolean isRegex() {
+ return PermissionType.REGEX.equals(permissionType);
+ }
+
+ public boolean isTeam() {
+ return PermissionType.TEAM.equals(permissionType);
+ }
+
+ public boolean isMissing() {
+ return PermissionType.MISSING.equals(permissionType);
+ }
+
+ public int getScore() {
+ switch (registrantType) {
+ case REPOSITORY:
+ if (isAdmin()) {
+ return 0;
+ }
+ if (isOwner()) {
+ return 1;
+ }
+ if (isExplicit()) {
+ return 2;
+ }
+ if (isRegex()) {
+ return 3;
+ }
+ if (isTeam()) {
+ return 4;
+ }
+ default:
+ return 0;
+ }
}
@Override
public int compareTo(RegistrantAccessPermission p) {
- switch (type) {
+ switch (registrantType) {
case REPOSITORY:
+ // repository permissions are sorted in score order
+ // to convey the order in which permissions are tested
+ int score1 = getScore();
+ int score2 = p.getScore();
+ if (score1 <= 2 && score2 <= 2) {
+ // group admin, owner, and explicit together
+ return StringUtils.compareRepositoryNames(registrant, p.registrant);
+ }
+ if (score1 < score2) {
+ return -1;
+ } else if (score2 < score1) {
+ return 1;
+ }
return StringUtils.compareRepositoryNames(registrant, p.registrant);
default:
- return registrant.toLowerCase().compareTo(p.registrant.toLowerCase());
+ // user and team permissions are string sorted
+ return registrant.toLowerCase().compareTo(p.registrant.toLowerCase());
}
}
@Override
+ public int hashCode() {
+ return registrant.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o instanceof RegistrantAccessPermission) {
+ RegistrantAccessPermission p = (RegistrantAccessPermission) o;
+ return registrant.equals(p.registrant);
+ }
+
+ return false;
+ }
+
+ @Override
public String toString() {
return permission.asRole(registrant);
}
--
Gitblit v1.9.1