| | |
| | | |
| | | /** |
| | | * Represents a Registrant-AccessPermission tuple. |
| | | * |
| | | * |
| | | * @author James Moger |
| | | */ |
| | | public class RegistrantAccessPermission implements Serializable, Comparable<RegistrantAccessPermission> { |
| | |
| | | public PermissionType permissionType; |
| | | public boolean mutable; |
| | | public String source; |
| | | |
| | | |
| | | public RegistrantAccessPermission() { |
| | | } |
| | | |
| | |
| | | this.permissionType = PermissionType.EXPLICIT; |
| | | this.mutable = true; |
| | | } |
| | | |
| | | |
| | | public RegistrantAccessPermission(String registrant, AccessPermission permission, PermissionType permissionType, RegistrantType registrantType, String source, boolean mutable) { |
| | | this.registrant = registrant; |
| | | this.permission = permission; |
| | |
| | | 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 isMissing() { |
| | | return PermissionType.MISSING.equals(permissionType); |
| | | } |
| | | |
| | | |
| | | public int getScore() { |
| | | switch (registrantType) { |
| | | case REPOSITORY: |
| | |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public int compareTo(RegistrantAccessPermission p) { |
| | | switch (registrantType) { |
| | |
| | | int score2 = p.getScore(); |
| | | if (score1 <= 2 && score2 <= 2) { |
| | | // group admin, owner, and explicit together |
| | | return StringUtils.compareRepositoryNames(registrant, p.registrant); |
| | | return StringUtils.compareRepositoryNames(registrant, p.registrant); |
| | | } |
| | | if (score1 < score2) { |
| | | return -1; |
| | |
| | | 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); |