James Moger
2012-11-01 7ba85bfa11c7fcab21ada61650fe30763aafd7b0
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);
   }