From 7ba85bfa11c7fcab21ada61650fe30763aafd7b0 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 01 Nov 2012 09:12:55 -0400 Subject: [PATCH] Gracefully deal with missing repository in permissions ui (issue 155) --- src/com/gitblit/models/RegistrantAccessPermission.java | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 45 insertions(+), 5 deletions(-) diff --git a/src/com/gitblit/models/RegistrantAccessPermission.java b/src/com/gitblit/models/RegistrantAccessPermission.java index 9302745..4bdc2da 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,20 +33,44 @@ public String registrant; public AccessPermission permission; - public RegistrantType type; - + public RegistrantType registrantType; + public PermissionType permissionType; + public boolean mutable; + public String source; + public RegistrantAccessPermission() { } + + public RegistrantAccessPermission(RegistrantType registrantType) { + this.registrantType = registrantType; + this.permissionType = PermissionType.EXPLICIT; + this.mutable = true; + } - public RegistrantAccessPermission(String registrant, AccessPermission permission, RegistrantType type) { + public RegistrantAccessPermission(String registrant, AccessPermission permission, PermissionType permissionType, RegistrantType registrantType, String source, boolean mutable) { this.registrant = registrant; this.permission = permission; - 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 isMissing() { + return PermissionType.MISSING.equals(permissionType); } @Override public int compareTo(RegistrantAccessPermission p) { - switch (type) { + switch (registrantType) { case REPOSITORY: return StringUtils.compareRepositoryNames(registrant, p.registrant); default: @@ -54,6 +79,21 @@ } @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