Package com.gitblit.Constants

Examples of com.gitblit.Constants.AccessPermission


   * <li> RW+:myrepo.git
   * </ul>
   * @param role
   */
  public void addRepositoryPermission(String role) {
    AccessPermission permission = AccessPermission.permissionFromRole(role);
    String repository = AccessPermission.repositoryFromRole(role).toLowerCase();
    repositories.add(repository);
    permissions.put(repository, permission);
  }
View Full Code Here


    ap.registrantType = RegistrantType.USER;
    ap.permission = AccessPermission.NONE;
    ap.mutable = false;

    // determine maximum permission for the repository
    final AccessPermission maxPermission =
        (repository.isFrozen || !repository.isBare || repository.isMirror) ?
            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;
    }

    // administrator
    if (canAdmin()) {
      ap.permissionType = PermissionType.ADMINISTRATOR;
      if (AccessPermission.REWIND.atMost(maxPermission)) {
        ap.permission = AccessPermission.REWIND;
      } else {
        ap.permission = maxPermission;
      }
      if (!canAdmin) {
        // administator permission from team membership
        for (TeamModel team : teams) {
          if (team.canAdmin) {
            ap.source = team.name;
            break;
          }
        }
      }
      return ap;
    }

    // repository owner - either specified owner or personal repository
    if (repository.isOwner(username) || repository.isUsersPersonalRepository(username)) {
      ap.permissionType = PermissionType.OWNER;
      if (AccessPermission.REWIND.atMost(maxPermission)) {
        ap.permission = AccessPermission.REWIND;
      } else {
        ap.permission = maxPermission;
      }
      return ap;
    }

    if (AuthorizationControl.AUTHENTICATED.equals(repository.authorizationControl) && isAuthenticated) {
      // AUTHENTICATED is a shortcut for authorizing all logged-in users RW+ access
      if (AccessPermission.REWIND.atMost(maxPermission)) {
        ap.permission = AccessPermission.REWIND;
      } else {
        ap.permission = maxPermission;
      }
      return ap;
    }

    // explicit user permission OR user regex match is used
    // if that fails, then the best team permission is used
    if (permissions.containsKey(repository.name.toLowerCase())) {
      // exact repository permission specified, use it
      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;
      }
    } else {
      // search for case-insensitive regex permission match
      for (String key : permissions.keySet()) {
        if (StringUtils.matchesIgnoreCase(repository.name, key)) {
          AccessPermission p = permissions.get(key);
          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;
View Full Code Here

      return true;
    } else {
      // search for regex permission match
      for (String key : permissions.keySet()) {
        if (name.matches(key)) {
          AccessPermission p = permissions.get(key);
          if (p != null) {
            return true;
          }
        }
      }
View Full Code Here

   * <li> RW+:myrepo.git
   * </ul>
   * @param role
   */
  public void addRepositoryPermission(String role) {
    AccessPermission permission = AccessPermission.permissionFromRole(role);
    String repository = AccessPermission.repositoryFromRole(role).toLowerCase();
    repositories.add(repository);
    permissions.put(repository, permission);
  }
View Full Code Here

    ap.registrantType = RegistrantType.TEAM;
    ap.permission = AccessPermission.NONE;
    ap.mutable = false;

    // determine maximum permission for the repository
    final AccessPermission maxPermission =
        (repository.isFrozen || !repository.isBare || repository.isMirror) ?
            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;
    }

    if (permissions.containsKey(repository.name.toLowerCase())) {
      // exact repository permission specified
      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;
      }
    } else {
      // search for case-insensitive regex permission match
      for (String key : permissions.keySet()) {
        if (StringUtils.matchesIgnoreCase(repository.name, key)) {
          AccessPermission p = permissions.get(key);
          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;
View Full Code Here

          }
        } catch (RuntimeException e) {
          throw new UnloggedFailure("The data read from SDTIN can not be parsed as an SSH public key!");
        }
        if (!StringUtils.isEmpty(permission)) {
          AccessPermission ap = AccessPermission.fromCode(permission);
          if (ap.exceeds(AccessPermission.NONE)) {
            try {
              sshKey.setPermission(ap);
            } catch (IllegalArgumentException e) {
              throw new Failure(1, e.getMessage());
            }
View Full Code Here

      if (index > keys.size()) {
        throw new UnloggedFailure(1"Invalid key index!");
      }

      SshKey key = keys.get(index - 1);
      AccessPermission permission = AccessPermission.fromCode(value);
      if (permission.exceeds(AccessPermission.NONE)) {
        try {
          key.setPermission(permission);
        } catch (IllegalArgumentException e) {
          throw new Failure(1, e.getMessage());
        }
View Full Code Here

          if (entry.charAt(0) == '#') {
            // skip comments
            continue;
          }
          String [] parts = entry.split(" ", 2);
          AccessPermission perm = AccessPermission.fromCode(parts[0]);
          if (perm.equals(AccessPermission.NONE)) {
            // ssh-rsa DATA COMMENT
            SshKey key = new SshKey(entry);
            list.add(key);
          } else if (perm.exceeds(AccessPermission.NONE)) {
            // PERMISSION ssh-rsa DATA COMMENT
            SshKey key = new SshKey(parts[1]);
            key.setPermission(perm);
            list.add(key);
          }
View Full Code Here

    return keys;
  }

  protected SshKey parseKey(String line) {
    String [] parts = line.split(" ", 2);
    AccessPermission perm = AccessPermission.fromCode(parts[0]);
    if (perm.equals(AccessPermission.NONE)) {
      // ssh-rsa DATA COMMENT
      SshKey key = new SshKey(line);
      return key;
    } else {
      // PERMISSION ssh-rsa DATA COMMENT
View Full Code Here

        } catch (Exception e) {
          // failed to parse the key
          return;
        }

        AccessPermission permission = keyPermission.getObject();
        key.setPermission(permission);

        String comment  = keyComment.getObject();
        if (!StringUtils.isEmpty(comment)) {
          key.setComment(comment);
View Full Code Here

TOP

Related Classes of com.gitblit.Constants.AccessPermission

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.