Package com.gitblit.models

Examples of com.gitblit.models.UserModel


    String userName = WicketUtils.getUsername(params);
    if (StringUtils.isEmpty(userName)) {
      throw new GitblitRedirectException(GitBlitWebApp.get().getHomePage());
    }

    UserModel user = app().users().getUserModel(userName);
    if (user == null) {
      // construct a temporary user model
      user = new UserModel(userName);
    }

    add(new Label("userDisplayName", user.getDisplayName()));
    add(new Label("userUsername", user.username));
    LinkPanel email = new LinkPanel("userEmail", null, user.emailAddress, "mailto:#");
    email.setRenderBodyOnly(true);
    add(email.setVisible(app().settings().getBoolean(Keys.web.showEmailAddresses, true) && !StringUtils.isEmpty(user.emailAddress)));

    PersonIdent person = new PersonIdent(user.getDisplayName(), user.emailAddress == null ? user.getDisplayName() : user.emailAddress);
    add(new GravatarImage("gravatar", person, 210));

    UserModel sessionUser = GitBlitWebSession.get().getUser();
    if (sessionUser != null && user.canCreate() && sessionUser.equals(user)) {
      // user can create personal repositories
      add(new BookmarkablePageLink<Void>("newRepository", EditRepositoryPage.class));
    } else {
      add(new Label("newRepository").setVisible(false));
    }
View Full Code Here


    }
    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;
    }

    List<Metric> metrics = null;
    Metric metricsTotal = null;
    if (!model.skipSummaryMetrics && app().settings().getBoolean(Keys.web.generateActivityGraph, true)) {
      metrics = app().repositories().getRepositoryDefaultMetrics(model, r);
      metricsTotal = metrics.remove(0);
    }

    addSyndicationDiscoveryLink();

    // repository description
    add(new Label("repositoryDescription", getRepositoryModel().description));

    // owner links
    final List<String> owners = new ArrayList<String>(getRepositoryModel().owners);
    ListDataProvider<String> ownersDp = new ListDataProvider<String>(owners);
    DataView<String> ownersView = new DataView<String>("repositoryOwners", ownersDp) {
      private static final long serialVersionUID = 1L;
      int counter = 0;
      @Override
      public void populateItem(final Item<String> item) {
        String ownername = item.getModelObject();
        UserModel ownerModel = app().users().getUserModel(ownername);
        if (ownerModel != null) {
          item.add(new LinkPanel("owner", null, ownerModel.getDisplayName(), UserPage.class,
              WicketUtils.newUsernameParameter(ownerModel.username)).setRenderBodyOnly(true));
        } else {
          Label owner = new Label("owner", ownername);
          WicketUtils.setCssStyle(owner, "text-decoration: line-through;");
          WicketUtils.setHtmlTooltip(owner,  MessageFormat.format(getString("gb.failedToFindAccount"), ownername));
View Full Code Here

    model.accessRestriction = AccessRestrictionType.fromName(restriction);
    String authorization = app().settings().getString(Keys.git.defaultAuthorizationControl, null);
    model.authorizationControl = AuthorizationControl.fromName(authorization);

    GitBlitWebSession session = GitBlitWebSession.get();
    UserModel user = session.getUser();
    if (user != null && user.canCreate() && !user.canAdmin()) {
      // personal create permissions, inject personal repository path
      model.name = user.getPersonalPath() + "/";
      model.projectPath = user.getPersonalPath();
      model.addOwner(user.username);
      // personal repositories are private by default
      model.accessRestriction = AccessRestrictionType.VIEW;
      model.authorizationControl = AuthorizationControl.NAMED;
    }
View Full Code Here

    final List<RegistrantAccessPermission> repositoryTeams = new ArrayList<RegistrantAccessPermission>();
    List<String> preReceiveScripts = new ArrayList<String>();
    List<String> postReceiveScripts = new ArrayList<String>();

    GitBlitWebSession session = GitBlitWebSession.get();
    final UserModel user = session.getUser() == null ? UserModel.ANONYMOUS : session.getUser();
    final boolean allowEditName = isCreate || isAdmin || repositoryModel.isUsersPersonalRepository(user.username);

    if (isCreate) {
      if (user.canAdmin()) {
        super.setupPage(getString("gb.newRepository"), "");
      } else {
        super.setupPage(getString("gb.newRepository"), user.getDisplayName());
      }
    } else {
      super.setupPage(getString("gb.edit"), repositoryModel.name);
      repositoryUsers.addAll(app().repositories().getUserAccessPermissions(repositoryModel));
      repositoryTeams.addAll(app().repositories().getTeamAccessPermissions(repositoryModel));
      Collections.sort(repositoryUsers);
      Collections.sort(repositoryTeams);

      federationSets.addAll(repositoryModel.federationSets);
      if (!ArrayUtils.isEmpty(repositoryModel.indexedBranches)) {
        indexedBranches.addAll(repositoryModel.indexedBranches);
      }
    }

    final String oldName = repositoryModel.name;

    final RegistrantPermissionsPanel usersPalette = new RegistrantPermissionsPanel("users",
        RegistrantType.USER, app().users().getAllUsernames(), repositoryUsers, getAccessPermissions());
    final RegistrantPermissionsPanel teamsPalette = new RegistrantPermissionsPanel("teams",
        RegistrantType.TEAM, app().users().getAllTeamNames(), repositoryTeams, getAccessPermissions());

    // owners palette
    List<UserChoice> owners = new ArrayList<UserChoice>();
    for (String owner : repositoryModel.owners) {
      UserModel o = app().users().getUserModel(owner);
      if (o != null) {
        owners.add(new UserChoice(o.getDisplayName(), o.username, o.emailAddress));
      } else {
        owners.add(new UserChoice(owner));
      }
    }
    List<UserChoice> persons = new ArrayList<UserChoice>();
    for (String person : app().users().getAllUsernames()) {
      UserModel o = app().users().getUserModel(person);
      if (o != null) {
        persons.add(new UserChoice(o.getDisplayName(), o.username, o.emailAddress));
      } else {
        persons.add(new UserChoice(person));
      }
    }
    final Palette<UserChoice> ownersPalette = new Palette<UserChoice>("owners", new ListModel<UserChoice>(owners), new CollectionModel<UserChoice>(
View Full Code Here

    String feedDescription = null;

    List<String> repositories = null;
    if (repositoryName.indexOf('/') == -1 && !repositoryName.toLowerCase().endsWith(".git")) {
      // try to find a project
      UserModel user = null;
      if (request instanceof AuthenticatedRequest) {
        user = ((AuthenticatedRequest) request).getUser();
      }
      ProjectModel project = projectManager.getProjectModel(repositoryName, user);
      if (project != null) {
View Full Code Here

    // 2. http.receivepack = true in each repository's config
    //
    // Gitblit must conditionally authenticate users per-repository so just
    // enabling http.receivepack is insufficient.
    AuthenticatedRequest authenticatedRequest = new AuthenticatedRequest(httpRequest);
    UserModel user = getUser(httpRequest);
    if (user != null) {
      authenticatedRequest.setUser(user);
    }

    // BASIC authentication challenge and response processing
    if (model != null) {
      if (model.accessRestriction.atLeast(AccessRestrictionType.VIEW)) {
        if (user == null) {
          // challenge client to provide credentials. send 401.
          if (runtimeManager.isDebugMode()) {
            logger.info(MessageFormat.format("ARF: CHALLENGE {0}", fullUrl));
          }
          httpResponse.setHeader("WWW-Authenticate", CHALLENGE);
          httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED);
          return;
        } else {
          // check user access for request
          if (user.canView(model)) {
            // authenticated request permitted.
            // pass processing to the restricted servlet.
            newSession(authenticatedRequest, httpResponse);
            logger.info(MessageFormat.format("ARF: {0} ({1}) authenticated", fullUrl,
                HttpServletResponse.SC_CONTINUE));
View Full Code Here

  public EditUserPage() {
    // create constructor
    super();
    isCreate = true;
    setupPage(new UserModel(""));
    setStatelessHint(false);
    setOutputMarkupId(true);
  }
View Full Code Here

  public EditUserPage(PageParameters params) {
    // edit constructor
    super(params);
    isCreate = false;
    String name = WicketUtils.getUsername(params);
    UserModel model = app().users().getUserModel(name);
    setupPage(model);
    setStatelessHint(false);
    setOutputMarkupId(true);
  }
View Full Code Here

        }
        // force username to lower-case
        userModel.username = userModel.username.toLowerCase();
        String username = userModel.username;
        if (isCreate) {
          UserModel model = app().users().getUserModel(username);
          if (model != null) {
            error(MessageFormat.format(getString("gb.usernameUnavailable"), username));
            return;
          }
        }
View Full Code Here

    return subject;
  }

  protected String formatLastChange(TicketModel ticket) {
    Change lastChange = ticket.changes.get(ticket.changes.size() - 1);
    UserModel user = getUserModel(lastChange.author);

    // define the fields we do NOT want to see in an email notification
    Set<TicketModel.Field> fieldExclusions = new HashSet<TicketModel.Field>();
    fieldExclusions.addAll(Arrays.asList(Field.watchers, Field.voters));

    StringBuilder sb = new StringBuilder();
    boolean newTicket = lastChange.isStatusChange() && Status.New == lastChange.getStatus();
    boolean isFastForward = true;
    List<RevCommit> commits = null;
    DiffStat diffstat = null;

    String pattern;
    if (lastChange.hasPatchset()) {
      // patchset uploaded
      Patchset patchset = lastChange.patchset;
      String base = "";
      // determine the changed paths
      Repository repo = null;
      try {
        repo = repositoryManager.getRepository(ticket.repository);
        if (patchset.isFF() && (patchset.rev > 1)) {
          // fast-forward update, just show the new data
          isFastForward = true;
          Patchset prev = ticket.getPatchset(patchset.number, patchset.rev - 1);
          base = prev.tip;
        } else {
          // proposal OR non-fast-forward update
          isFastForward = false;
          base = patchset.base;
        }

        diffstat = DiffUtils.getDiffStat(repo, base, patchset.tip);
        commits = JGitUtils.getRevLog(repo, base, patchset.tip);
      } catch (Exception e) {
        Logger.getLogger(getClass()).error("failed to get changed paths", e);
      } finally {
        if (repo != null) {
          repo.close();
        }
      }

      String compareUrl = ticketService.getCompareUrl(ticket, base, patchset.tip);

      if (newTicket) {
        // new proposal
        pattern = "**{0}** is proposing a change.";
        sb.append(MessageFormat.format(pattern, user.getDisplayName()));
        fieldExclusions.add(Field.status);
        fieldExclusions.add(Field.title);
        fieldExclusions.add(Field.body);
      } else {
        // describe the patchset
        if (patchset.isFF()) {
          pattern = "**{0}** added {1} {2} to patchset {3}.";
          sb.append(MessageFormat.format(pattern, user.getDisplayName(), patchset.added, patchset.added == 1 ? "commit" : "commits", patchset.number));
        } else {
          pattern = "**{0}** uploaded patchset {1}. *({2})*";
          sb.append(MessageFormat.format(pattern, user.getDisplayName(), patchset.number, patchset.type.toString().toUpperCase()));
        }
      }
      sb.append(HARD_BRK);

      sb.append(MessageFormat.format("{0} {1}, {2} {3}, <span style=\"color:darkgreen;\">+{4} insertions</span>, <span style=\"color:darkred;\">-{5} deletions</span> from {6}. [compare]({7})",
          commits.size(), commits.size() == 1 ? "commit" : "commits",
          diffstat.paths.size(),
          diffstat.paths.size() == 1 ? "file" : "files",
          diffstat.getInsertions(),
          diffstat.getDeletions(),
          isFastForward ? "previous revision" : "merge base",
          compareUrl));

      // note commit additions on a rebase,if any
      switch (lastChange.patchset.type) {
      case Rebase:
        if (lastChange.patchset.added > 0) {
          sb.append(SOFT_BRK);
          sb.append(MessageFormat.format("{0} {1} added.", lastChange.patchset.added, lastChange.patchset.added == 1 ? "commit" : "commits"));
        }
        break;
      default:
        break;
      }
      sb.append(HARD_BRK);
    } else if (lastChange.isStatusChange()) {
      if (newTicket) {
        fieldExclusions.add(Field.status);
        fieldExclusions.add(Field.title);
        fieldExclusions.add(Field.body);
        pattern = "**{0}** created this ticket.";
        sb.append(MessageFormat.format(pattern, user.getDisplayName()));
      } else if (lastChange.hasField(Field.mergeSha)) {
        // closed by merged
        pattern = "**{0}** closed this ticket by merging {1} to {2}.";

        // identify patchset that closed the ticket
        String merged = ticket.mergeSha;
        for (Patchset patchset : ticket.getPatchsets()) {
          if (patchset.tip.equals(ticket.mergeSha)) {
            merged = patchset.toString();
            break;
          }
        }
        sb.append(MessageFormat.format(pattern, user.getDisplayName(), merged, ticket.mergeTo));
      } else {
        // workflow status change by user
        pattern = "**{0}** changed the status of this ticket to **{1}**.";
        sb.append(MessageFormat.format(pattern, user.getDisplayName(), lastChange.getStatus().toString().toUpperCase()));
      }
      sb.append(HARD_BRK);
    } else if (lastChange.hasReview()) {
      // review
      Review review = lastChange.review;
      pattern = "**{0}** has reviewed patchset {1,number,0} revision {2,number,0}.";
      sb.append(MessageFormat.format(pattern, user.getDisplayName(), review.patchset, review.rev));
      sb.append(HARD_BRK);

      String d = settings.getString(Keys.web.datestampShortFormat, "yyyy-MM-dd");
      String t = settings.getString(Keys.web.timeFormat, "HH:mm");
      DateFormat df = new SimpleDateFormat(d + " " + t);
      List<Change> reviews = ticket.getReviews(ticket.getPatchset(review.patchset, review.rev));
      sb.append("| Date | Reviewer      | Score | Description  |\n");
      sb.append("| :--- | :------------ | :---: | :----------- |\n");
      for (Change change : reviews) {
        String name = change.author;
        UserModel u = userManager.getUserModel(change.author);
        if (u != null) {
          name = u.getDisplayName();
        }
        String score;
        switch (change.review.score) {
        case approved:
          score = MessageFormat.format(addPattern, change.review.score.getValue());
View Full Code Here

TOP

Related Classes of com.gitblit.models.UserModel

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.