Package com.gitblit.models

Examples of com.gitblit.models.RepositoryModel


    String urlRequestType = getUrlRequestAction(fullSuffix);

    UserModel user = getUser(httpRequest);

    // Load the repository model
    RepositoryModel model = repositoryManager.getRepositoryModel(repository);
    if (model == null) {
      if (isCreationAllowed()) {
        if (user == null) {
          // challenge client to provide credentials for creation. send 401.
          if (runtimeManager.isDebugMode()) {
View Full Code Here


    } catch (Exception e) {
      throw new GitBlitException(e);
    }

    // create a Gitblit repository model for the clone
    RepositoryModel cloneModel = repository.cloneAs(cloneName);
    // owner has REWIND/RW+ permissions
    cloneModel.addOwner(user.username);
    repositoryManager.updateRepositoryModel(cloneName, cloneModel, false);

    // add the owner of the source repository to the clone's access list
    if (!ArrayUtils.isEmpty(repository.owners)) {
      for (String owner : repository.owners) {
View Full Code Here

    super(params);

    setVersioned(false);

    String repositoryName = WicketUtils.getRepositoryName(params);
    RepositoryModel repository = app().repositories().getRepositoryModel(repositoryName);
    if (repository == null) {
      error(getString("gb.canNotLoadRepository") + " " + repositoryName, true);
    }

    if (repository.hasCommits) {
View Full Code Here

        teams.add(gitblit.getTeamModel(name));
      }
      result = teams;
    } else if (RpcRequest.CREATE_REPOSITORY.equals(reqType)) {
      // create repository
      RepositoryModel model = deserialize(request, response, RepositoryModel.class);
      try {
        gitblit.updateRepositoryModel(model.name, model, true);
      } catch (GitBlitException e) {
        response.setStatus(failureCode);
      }
    } else if (RpcRequest.EDIT_REPOSITORY.equals(reqType)) {
      // edit repository
      RepositoryModel model = deserialize(request, response, RepositoryModel.class);
      // name specifies original repository name in event of rename
      String repoName = objectName;
      if (repoName == null) {
        repoName = model.name;
      }
      try {
        gitblit.updateRepositoryModel(repoName, model, false);
      } catch (GitBlitException e) {
        response.setStatus(failureCode);
      }
    } else if (RpcRequest.DELETE_REPOSITORY.equals(reqType)) {
      // delete repository
      RepositoryModel model = deserialize(request, response, RepositoryModel.class);
      gitblit.deleteRepositoryModel(model);
    } else if (RpcRequest.CREATE_USER.equals(reqType)) {
      // create user
      UserModel model = deserialize(request, response, UserModel.class);
      try {
        gitblit.addUser(model);
      } catch (GitBlitException e) {
        response.setStatus(failureCode);
      }
    } else if (RpcRequest.EDIT_USER.equals(reqType)) {
      // edit user
      UserModel model = deserialize(request, response, UserModel.class);
      // name parameter specifies original user name in event of rename
      String username = objectName;
      if (username == null) {
        username = model.username;
      }
      try {
        gitblit.reviseUser(username, model);
      } catch (GitBlitException e) {
        response.setStatus(failureCode);
      }
    } else if (RpcRequest.DELETE_USER.equals(reqType)) {
      // delete user
      UserModel model = deserialize(request, response, UserModel.class);
      if (!gitblit.deleteUser(model.username)) {
        response.setStatus(failureCode);
      }
    } else if (RpcRequest.CREATE_TEAM.equals(reqType)) {
      // create team
      TeamModel model = deserialize(request, response, TeamModel.class);
      try {
        gitblit.addTeam(model);
      } catch (GitBlitException e) {
        response.setStatus(failureCode);
      }
    } else if (RpcRequest.EDIT_TEAM.equals(reqType)) {
      // edit team
      TeamModel model = deserialize(request, response, TeamModel.class);
      // name parameter specifies original team name in event of rename
      String teamname = objectName;
      if (teamname == null) {
        teamname = model.name;
      }
      try {
        gitblit.reviseTeam(teamname, model);
      } catch (GitBlitException e) {
        response.setStatus(failureCode);
      }
    } else if (RpcRequest.DELETE_TEAM.equals(reqType)) {
      // delete team
      TeamModel model = deserialize(request, response, TeamModel.class);
      if (!gitblit.deleteTeam(model.name)) {
        response.setStatus(failureCode);
      }
    } else if (RpcRequest.LIST_REPOSITORY_MEMBERS.equals(reqType)) {
      // get repository members
      RepositoryModel model = gitblit.getRepositoryModel(objectName);
      result = gitblit.getRepositoryUsers(model);
    } else if (RpcRequest.SET_REPOSITORY_MEMBERS.equals(reqType)) {
      // rejected since 1.2.0
      response.setStatus(failureCode);
    } else if (RpcRequest.LIST_REPOSITORY_MEMBER_PERMISSIONS.equals(reqType)) {
      // get repository member permissions
      RepositoryModel model = gitblit.getRepositoryModel(objectName);
      result = gitblit.getUserAccessPermissions(model);
    } else if (RpcRequest.SET_REPOSITORY_MEMBER_PERMISSIONS.equals(reqType)) {
      // set the repository permissions for the specified users
      RepositoryModel model = gitblit.getRepositoryModel(objectName);
      Collection<RegistrantAccessPermission> permissions = deserialize(request, response, RpcUtils.REGISTRANT_PERMISSIONS_TYPE);
      result = gitblit.setUserAccessPermissions(model, permissions);
    } else if (RpcRequest.LIST_REPOSITORY_TEAMS.equals(reqType)) {
      // get repository teams
      RepositoryModel model = gitblit.getRepositoryModel(objectName);
      result = gitblit.getRepositoryTeams(model);
    } else if (RpcRequest.SET_REPOSITORY_TEAMS.equals(reqType)) {
      // rejected since 1.2.0
      response.setStatus(failureCode);
    } else if (RpcRequest.LIST_REPOSITORY_TEAM_PERMISSIONS.equals(reqType)) {
      // get repository team permissions
      RepositoryModel model = gitblit.getRepositoryModel(objectName);
      result = gitblit.getTeamAccessPermissions(model);
    } else if (RpcRequest.SET_REPOSITORY_TEAM_PERMISSIONS.equals(reqType)) {
      // set the repository permissions for the specified teams
      RepositoryModel model = gitblit.getRepositoryModel(objectName);
      Collection<RegistrantAccessPermission> permissions = deserialize(request, response, RpcUtils.REGISTRANT_PERMISSIONS_TYPE);
      result = gitblit.setTeamAccessPermissions(model, permissions);
    } else if (RpcRequest.LIST_FEDERATION_REGISTRATIONS.equals(reqType)) {
      // return the list of federation registrations
      if (allowAdmin) {
        result = gitblit.getFederationRegistrations();
      } else {
        response.sendError(notAllowedCode);
      }
    } else if (RpcRequest.LIST_FEDERATION_RESULTS.equals(reqType)) {
      // return the list of federation result registrations
      if (allowAdmin && gitblit.canFederate()) {
        result = gitblit.getFederationResultRegistrations();
      } else {
        response.sendError(notAllowedCode);
      }
    } else if (RpcRequest.LIST_FEDERATION_PROPOSALS.equals(reqType)) {
      // return the list of federation proposals
      if (allowAdmin && gitblit.canFederate()) {
        result = gitblit.getPendingFederationProposals();
      } else {
        response.sendError(notAllowedCode);
      }
    } else if (RpcRequest.LIST_FEDERATION_SETS.equals(reqType)) {
      // return the list of federation sets
      if (allowAdmin && gitblit.canFederate()) {
        String gitblitUrl = settings.getString(Keys.web.canonicalUrl, null);
        if (StringUtils.isEmpty(gitblitUrl)) {
          gitblitUrl = HttpUtils.getGitblitURL(request);
        }
        result = gitblit.getFederationSets(gitblitUrl);
      } else {
        response.sendError(notAllowedCode);
      }
    } else if (RpcRequest.LIST_SETTINGS.equals(reqType)) {
      // return the server's settings
      ServerSettings serverSettings = gitblit.getSettingsModel();
      if (allowAdmin) {
        // return all settings
        result = serverSettings;
      } else {
        // anonymous users get a few settings to allow browser launching
        List<String> keys = new ArrayList<String>();
        keys.add(Keys.web.siteName);
        keys.add(Keys.web.mountParameters);
        keys.add(Keys.web.syndicationEntries);

        if (allowManagement) {
          // keys necessary for repository and/or user management
          keys.add(Keys.realm.minPasswordLength);
          keys.add(Keys.realm.passwordStorage);
          keys.add(Keys.federation.sets);
        }
        // build the settings
        ServerSettings managementSettings = new ServerSettings();
        for (String key : keys) {
          managementSettings.add(serverSettings.get(key));
        }
        if (allowManagement) {
          managementSettings.pushScripts = serverSettings.pushScripts;
        }
        result = managementSettings;
      }
    } else if (RpcRequest.EDIT_SETTINGS.equals(reqType)) {
      // update settings on the server
      if (allowAdmin) {
        Map<String, String> map = deserialize(request, response,
            RpcUtils.SETTINGS_TYPE);
        gitblit.updateSettings(map);
      } else {
        response.sendError(notAllowedCode);
      }
    } else if (RpcRequest.LIST_STATUS.equals(reqType)) {
      // return the server's status information
      if (allowAdmin) {
        result = gitblit.getStatus();
      } else {
        response.sendError(notAllowedCode);
      }
    } else if (RpcRequest.CLEAR_REPOSITORY_CACHE.equals(reqType)) {
      // clear the repository list cache
      if (allowManagement) {
        gitblit.resetRepositoryListCache();
      } else {
        response.sendError(notAllowedCode);
      }
    } else if (RpcRequest.REINDEX_TICKETS.equals(reqType)) {
      if (allowManagement) {
        if (StringUtils.isEmpty(objectName)) {
          // reindex all tickets
          gitblit.getTicketService().reindex();
        } else {
          // reindex tickets in a specific repository
          RepositoryModel model = gitblit.getRepositoryModel(objectName);
          gitblit.getTicketService().reindex(model);
        }
      } else {
        response.sendError(notAllowedCode);
      }
View Full Code Here

          logger.error(MessageFormat.format("Invalid character '{0}' in repository name {1}!", c, repository));
          return null;
        }

        // create repository
        RepositoryModel model = new RepositoryModel();
        model.name = repository;
        model.addOwner(user.username);
        model.projectPath = StringUtils.getFirstPathElement(repository);
        if (model.isUsersPersonalRepository(user.username)) {
          // personal repository, default to private for user
          model.authorizationControl = AuthorizationControl.NAMED;
          model.accessRestriction = AccessRestrictionType.VIEW;
        } else {
          // common repository, user default server settings
View Full Code Here

    Set<RegistrantAccessPermission> set = new LinkedHashSet<RegistrantAccessPermission>();
    set.addAll(user.getRepositoryPermissions());
    // Flag missing repositories
    for (RegistrantAccessPermission permission : set) {
      if (permission.mutable && PermissionType.EXPLICIT.equals(permission.permissionType)) {
        RepositoryModel rm = getRepository(permission.registrant);
        if (rm == null) {
          permission.permissionType = PermissionType.MISSING;
          permission.mutable = false;
          continue;
        }
      }
    }

    // TODO reconsider ownership as a user property
    // manually specify personal repository ownerships
    for (RepositoryModel rm : allRepositories) {
      if (rm.isUsersPersonalRepository(user.username) || rm.isOwner(user.username)) {
        RegistrantAccessPermission rp = new RegistrantAccessPermission(rm.name, AccessPermission.REWIND,
            PermissionType.OWNER, RegistrantType.REPOSITORY, null, false);
        // user may be owner of a repository to which they've inherited
        // a team permission, replace any existing perm with owner perm
        set.remove(rp);
View Full Code Here

    DataView<RepositoryModel> dataView = new DataView<RepositoryModel>("repositoryList", dp) {
      private static final long serialVersionUID = 1L;

      @Override
      public void populateItem(final Item<RepositoryModel> item) {
        final RepositoryModel entry = item.getModelObject();

        ProjectRepositoryPanel row = new ProjectRepositoryPanel("repository",
            getLocalizer(), this, showAdmin, entry, getAccessRestrictions());
        item.add(row);
      }
View Full Code Here

      numberCommits = 20;
    }
    int numberRefs = app().settings().getInteger(Keys.web.summaryRefsCount, 5);

    Repository r = getRepository();
    final RepositoryModel model = getRepositoryModel();
    UserModel user = GitBlitWebSession.get().getUser();
    if (user == null) {
      user = UserModel.ANONYMOUS;
    }
View Full Code Here

  public boolean deleteAll() {
    List<String> repositories = repositoryManager.getRepositoryList();
    BitSet bitset = new BitSet(repositories.size());
    for (int i = 0; i < repositories.size(); i++) {
      String name = repositories.get(i);
      RepositoryModel repository = repositoryManager.getRepositoryModel(name);
      boolean success = deleteAll(repository);
      bitset.set(i, success);
    }
    boolean success = bitset.cardinality() == repositories.size();
    if (success) {
View Full Code Here

  public final TicketModel updateComment(TicketModel ticket, String commentId,
      String updatedBy, String comment) {
    Change revision = new Change(updatedBy);
    revision.comment(comment);
    revision.comment.id = commentId;
    RepositoryModel repository = repositoryManager.getRepositoryModel(ticket.repository);
    TicketModel revisedTicket = updateTicket(repository, ticket.number, revision);
    return revisedTicket;
  }
View Full Code Here

TOP

Related Classes of com.gitblit.models.RepositoryModel

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.