James Moger
2013-05-02 9715e11fe30eccafa4c8272316883c80ba036a6e
src/main/java/com/gitblit/models/TeamModel.java
@@ -197,16 +197,29 @@
      ap.permission = AccessPermission.NONE;
      ap.mutable = false;
      
      // determine maximum permission for the repository
      final AccessPermission maxPermission =
            (repository.isFrozen || !repository.isBare) ?
                  AccessPermission.CLONE : AccessPermission.REWIND;
      if (AccessRestrictionType.NONE.equals(repository.accessRestriction)) {
         // anonymous rewind
         ap.permissionType = PermissionType.ANONYMOUS;
         if (AccessPermission.REWIND.atMost(maxPermission)) {
         ap.permission = AccessPermission.REWIND;
         } else {
            ap.permission = maxPermission;
         }
         return ap;
      }
      
      if (canAdmin) {
         ap.permissionType = PermissionType.ADMINISTRATOR;
         if (AccessPermission.REWIND.atMost(maxPermission)) {
         ap.permission = AccessPermission.REWIND;
         } else {
            ap.permission = maxPermission;
         }
         return ap;
      }
      
@@ -215,7 +228,11 @@
         AccessPermission p = permissions.get(repository.name.toLowerCase());
         if (p != null && repository.accessRestriction.isValidPermission(p)) {
            ap.permissionType = PermissionType.EXPLICIT;
            if (p.atMost(maxPermission)) {
            ap.permission = p;
            } else {
               ap.permission = maxPermission;
            }
            ap.mutable = true;
            return ap;
         }
@@ -227,7 +244,11 @@
               if (p != null && repository.accessRestriction.isValidPermission(p)) {
                  // take first match
                  ap.permissionType = PermissionType.REGEX;
                  if (p.atMost(maxPermission)) {
                  ap.permission = p;
                  } else {
                     ap.permission = maxPermission;
                  }
                  ap.source = key;
                  return ap;
               }
@@ -252,8 +273,8 @@
            ap.permissionType = PermissionType.ANONYMOUS;
            break;
         case NONE:
            // implied REWIND or CLONE if frozen
            ap.permission = repository.isFrozen ? AccessPermission.CLONE : AccessPermission.REWIND;
            // implied REWIND or CLONE
            ap.permission = maxPermission;
            ap.permissionType = PermissionType.ANONYMOUS;
            break;
         }