Package com.gitblit.models

Examples of com.gitblit.models.RepositoryModel


    clone.setCloneAllBranches(true);
    clone.setCredentialsProvider(cp);
    GitBlitSuite.close(clone.call());

    // require push permissions and committer verification
    RepositoryModel model = repositories().getRepositoryModel("refchecks/verify-committer.git");
    model.authorizationControl = AuthorizationControl.NAMED;
    model.accessRestriction = AccessRestrictionType.PUSH;
    model.verifyCommitter = true;

    // grant user push permission
View Full Code Here


    final String forkName = "refchecks/ticgit.git";
    final String workingCopy = "refchecks/ticgit-wc";


    // lower access restriction on origin repository
    RepositoryModel origin = repositories().getRepositoryModel(originName);
    origin.accessRestriction = AccessRestrictionType.NONE;
    repositories().updateRepositoryModel(origin.name, origin, false);

    UserModel user = getUser();
    delete(user);

    CredentialsProvider cp = new UsernamePasswordCredentialsProvider(user.username, user.password);

    // fork from original to a temporary bare repo
    File refChecks = new File(GitBlitSuite.REPOSITORIES, forkName);
    if (refChecks.exists()) {
      FileUtils.delete(refChecks, FileUtils.RECURSIVE);
    }
    CloneCommand clone = Git.cloneRepository();
    clone.setURI(url + "/" + originName);
    clone.setDirectory(refChecks);
    clone.setBare(true);
    clone.setCloneAllBranches(true);
    clone.setCredentialsProvider(cp);
    GitBlitSuite.close(clone.call());

    // elevate repository to clone permission
    RepositoryModel model = repositories().getRepositoryModel(forkName);
    switch (permission) {
      case VIEW:
        model.accessRestriction = AccessRestrictionType.CLONE;
        break;
      case CLONE:
View Full Code Here

      }

      assertTrue("User canAdmin:" + user.canAdmin + " canCreate:" + user.canCreate, user.canAdmin || user.canCreate);

      // confirm default personal repository permissions
      RepositoryModel model = repositories().getRepositoryModel(MessageFormat.format("~{0}/ticgit.git", user.username));
      assertEquals("Unexpected owner", user.username, ArrayUtils.toString(model.owners));
      assertEquals("Unexpected authorization control", AuthorizationControl.NAMED, model.authorizationControl);
      assertEquals("Unexpected access restriction", AccessRestrictionType.VIEW, model.accessRestriction);

    } catch (GitAPIException e) {
      assertTrue(e.getMessage(), e.getMessage().contains("git-receive-pack not found"));
      assertFalse("User canAdmin:" + user.canAdmin + " canCreate:" + user.canCreate, user.canAdmin || user.canCreate);
    }

    // push to non-existent project repository
    try {
      Iterable<PushResult> results = git.push().setRemote("project").setPushAll().setCredentialsProvider(cp).call();
      GitBlitSuite.close(git);

      for (PushResult result : results) {
        RemoteRefUpdate ref = result.getRemoteUpdate("refs/heads/master");
        Status status = ref.getStatus();
        assertTrue("User failed to create repository?! " + status.name(), Status.OK.equals(status));
      }

      assertTrue("User canAdmin:" + user.canAdmin, user.canAdmin);

      // confirm default project repository permissions
      RepositoryModel model = repositories().getRepositoryModel("project/ticgit.git");
      assertEquals("Unexpected owner", user.username, ArrayUtils.toString(model.owners));
      assertEquals("Unexpected authorization control", AuthorizationControl.fromName(settings().getString(Keys.git.defaultAuthorizationControl, "NAMED")), model.authorizationControl);
      assertEquals("Unexpected access restriction", AccessRestrictionType.fromName(settings().getString(Keys.git.defaultAccessRestriction, "NONE")), model.accessRestriction);

    } catch (GitAPIException e) {
View Full Code Here

    assertTrue(
        "Missing Helloworld repository!",
        repositories.contains(GitBlitSuite.getHelloworldRepository().getDirectory()
            .getName()));
    Repository r = GitBlitSuite.getHelloworldRepository();
    RepositoryModel model = repositories().getRepositoryModel(r.getDirectory().getName());
    assertTrue("Helloworld model is null!", model != null);
    assertEquals(GitBlitSuite.getHelloworldRepository().getDirectory().getName(), model.name);
    assertTrue(repositories().updateLastChangeFields(r, model) > 22000L);
    r.close();
  }
View Full Code Here

    assertEquals("admin", user.toString());
    assertTrue("Admin missing #admin role!", user.canAdmin);
    user.canAdmin = false;
    assertFalse("Admin should not have #admin!", user.canAdmin);
    String repository = GitBlitSuite.getHelloworldRepository().getDirectory().getName();
    RepositoryModel repositoryModel = repositories().getRepositoryModel(repository);
    repositoryModel.accessRestriction = AccessRestrictionType.VIEW;
    assertFalse("Admin can still access repository!",
        user.canView(repositoryModel));
    user.addRepositoryPermission(repository);
    assertTrue("Admin can't access repository!", user.canView(repositoryModel));
View Full Code Here

  private IModel<Boolean> notificationModel;

  public EditMilestonePage(PageParameters params) {
    super(params);

    RepositoryModel model = getRepositoryModel();
    if (!app().tickets().isAcceptingTicketUpdates(model)) {
      // ticket service is read-only
      throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
    }
View Full Code Here

        counter = 0;
      }

      @Override
      public void populateItem(final Item<RepositoryModel> item) {
        final RepositoryModel entry = item.getModelObject();
        if (entry instanceof GroupRepositoryModel) {
          GroupRepositoryModel groupRow = (GroupRepositoryModel) entry;
          currGroupName = entry.name;
          Fragment row = new Fragment("rowContent", "groupRepositoryRow", this);
          item.add(row);

          String name = groupRow.name;
          if (name.startsWith(ModelUtils.getUserRepoPrefix())) {
            // user page
            String username = ModelUtils.getUserNameFromRepoPath(name);
            UserModel user = app().users().getUserModel(username);
            row.add(new LinkPanel("groupName", null, (user == null ? username : user.getDisplayName()) + " (" + groupRow.count + ")", UserPage.class, WicketUtils.newUsernameParameter(username)));
            row.add(new Label("groupDescription", getString("gb.personalRepositories")));
          } else {
            // project page
            row.add(new LinkPanel("groupName", null, groupRow.toString(), ProjectPage.class, WicketUtils.newProjectParameter(entry.name)));
            row.add(new Label("groupDescription", entry.description == null ? "":entry.description));
          }
          WicketUtils.setCssClass(item, "group");
          // reset counter so that first row is light background
          counter = 0;
          return;
        }
        Fragment row = new Fragment("rowContent", "repositoryRow", this);
        item.add(row);

        // try to strip group name for less cluttered list
        String repoName = entry.toString();
        if (!StringUtils.isEmpty(currGroupName) && (repoName.indexOf('/') > -1)) {
          repoName = repoName.substring(currGroupName.length() + 1);
        }

        // repository swatch
        Component swatch;
        if (entry.isBare){
          swatch = new Label("repositorySwatch", "&nbsp;").setEscapeModelStrings(false);
        } else {
          swatch = new Label("repositorySwatch", "!");
          WicketUtils.setHtmlTooltip(swatch, getString("gb.workingCopyWarning"));
        }
        WicketUtils.setCssBackground(swatch, entry.toString());
        row.add(swatch);
        swatch.setVisible(showSwatch);

        if (linksActive) {
          Class<? extends BasePage> linkPage = SummaryPage.class;
          PageParameters pp = WicketUtils.newRepositoryParameter(entry.name);
          row.add(new LinkPanel("repositoryName", "list", repoName, linkPage, pp));
          row.add(new LinkPanel("repositoryDescription", "list", entry.description,
              linkPage, pp));
        } else {
          // no links like on a federation page
          row.add(new Label("repositoryName", repoName));
          row.add(new Label("repositoryDescription", entry.description));
        }
        if (entry.hasCommits) {
          // Existing repository
          row.add(new Label("repositorySize", entry.size).setVisible(showSize));
        } else {
          // New repository
          row.add(new Label("repositorySize", "<span class='empty'>(" + getString("gb.empty") + ")</span>")
              .setEscapeModelStrings(false));
        }

        if (entry.isSparkleshared()) {
          row.add(WicketUtils.newImage("sparkleshareIcon", "star_16x16.png",
              getString("gb.isSparkleshared")));
        } else {
          row.add(WicketUtils.newClearPixel("sparkleshareIcon").setVisible(false));
        }

        if (entry.isMirror) {
          row.add(WicketUtils.newImage("mirrorIcon", "mirror_16x16.png",
              getString("gb.isMirror")));
        } else {
          row.add(WicketUtils.newClearPixel("mirrorIcon").setVisible(false));
        }

        if (entry.isFork()) {
          row.add(WicketUtils.newImage("forkIcon", "commit_divide_16x16.png",
              getString("gb.isFork")));
        } else {
          row.add(WicketUtils.newClearPixel("forkIcon").setVisible(false));
        }
View Full Code Here

    super(params);

    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

    setVersioned(false);

    GitBlitWebSession session = GitBlitWebSession.get();

    RepositoryModel repository = getRepositoryModel();
    UserModel user = session.getUser();
    boolean canFork = user.canFork(repository);

    if (!canFork) {
      // redirect to the summary page if this repository is not empty
View Full Code Here

public class ForksPage extends RepositoryPage {

  public ForksPage(PageParameters params) {
    super(params);

    final RepositoryModel pageRepository = getRepositoryModel();

    ForkModel root = app().repositories().getForkNetwork(pageRepository.name);
    List<FlatFork> network = flatten(root);

    ListDataProvider<FlatFork> forksDp = new ListDataProvider<FlatFork>(network);
    DataView<FlatFork> forksList = new DataView<FlatFork>("fork", forksDp) {
      private static final long serialVersionUID = 1L;

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

        if (repository.isPersonalRepository()) {
          UserModel user = app().users().getUserModel(repository.projectPath.substring(1));
          if (user == null) {
            // user account no longer exists
            user = new UserModel(repository.projectPath.substring(1));
          }
          PersonIdent ident = new PersonIdent(user.getDisplayName(), user.emailAddress == null ? user.getDisplayName() : user.emailAddress);
          item.add(new GravatarImage("anAvatar", ident, 20));
          if (pageRepository.equals(repository)) {
            // do not link to self
            item.add(new Label("aProject", user.getDisplayName()));
          } else {
            item.add(new LinkPanel("aProject", null, user.getDisplayName(), UserPage.class, WicketUtils.newUsernameParameter(user.username)));
          }
        } else {
          Component swatch;
          if (repository.isBare){
            swatch = new Label("anAvatar", "&nbsp;").setEscapeModelStrings(false);
          } else {
            swatch = new Label("anAvatar", "!");
            WicketUtils.setHtmlTooltip(swatch, getString("gb.workingCopyWarning"));
          }
          WicketUtils.setCssClass(swatch,  "repositorySwatch");
          WicketUtils.setCssBackground(swatch, repository.toString());
          item.add(swatch);
          String projectName = repository.projectPath;
          if (StringUtils.isEmpty(projectName)) {
            projectName = app().settings().getString(Keys.web.repositoryRootGroupName, "main");
          }
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.