James Moger
2013-01-23 c7acc2e1fa86102bb87e715c8fe4e336329fbcc6
src/com/gitblit/wicket/pages/RepositoryPage.java
@@ -48,6 +48,7 @@
import com.gitblit.PagesServlet;
import com.gitblit.SyndicationServlet;
import com.gitblit.models.ProjectModel;
import com.gitblit.models.RefModel;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.SubmoduleModel;
import com.gitblit.models.UserModel;
@@ -98,6 +99,26 @@
      if (!getRepositoryModel().hasCommits) {
         setResponsePage(EmptyRepositoryPage.class, params);
      }
      if (getRepositoryModel().isCollectingGarbage) {
         error(MessageFormat.format(getString("gb.busyCollectingGarbage"), getRepositoryModel().name), true);
      }
      if (objectId != null) {
         RefModel branch = null;
         if ((branch = JGitUtils.getBranch(getRepository(), objectId)) != null) {
            UserModel user = GitBlitWebSession.get().getUser();
            if (user == null) {
               // workaround until get().getUser() is reviewed throughout the app
               user = UserModel.ANONYMOUS;
            }
            boolean canAccess = user.canView(getRepositoryModel(),
                        branch.reference.getName());
            if (!canAccess) {
               error(getString("gb.accessDenied"), true);
            }
         }
      }
      // register the available page links for this page and user
      registeredPages = registerPages();
@@ -133,7 +154,9 @@
      pages.put("branches", new PageRegistration("gb.branches", BranchesPage.class, params));
      pages.put("tags", new PageRegistration("gb.tags", TagsPage.class, params));
      pages.put("tree", new PageRegistration("gb.tree", TreePage.class, params));
      pages.put("forks", new PageRegistration("gb.forks", ForksPage.class, params));
      if (GitBlit.getBoolean(Keys.web.allowForking, true)) {
         pages.put("forks", new PageRegistration("gb.forks", ForksPage.class, params));
      }
      // conditional links
      Repository r = getRepository();
@@ -161,7 +184,7 @@
         showAdmin = GitBlit.getBoolean(Keys.web.allowAdministration, false);
      }
      isOwner = GitBlitWebSession.get().isLoggedIn()
            && (model.owner != null && model.owner.equalsIgnoreCase(GitBlitWebSession.get()
            && (model.isOwner(GitBlitWebSession.get()
                  .getUsername()));
      if (showAdmin || isOwner) {
         pages.put("edit", new PageRegistration("gb.edit", EditRepositoryPage.class, params));
@@ -170,7 +193,7 @@
   }
   
   protected boolean allowForkControls() {
      return true;
      return GitBlit.getBoolean(Keys.web.allowForking, true);
   }
   @Override
@@ -223,6 +246,14 @@
         }
      }
      
      // show sparkleshare folder icon
      if (model.isSparkleshared()) {
         add(WicketUtils.newImage("repositoryIcon", "folder_star_32x32.png",
               getString("gb.isSparkleshared")));
      } else {
         add(WicketUtils.newClearPixel("repositoryIcon").setVisible(false));
      }
      if (getRepositoryModel().isBare) {
         add(new Label("workingCopyIndicator").setVisible(false));
      } else {
@@ -248,7 +279,7 @@
            // user not allowed to fork or fork already exists or repo forbids forking
            add(new ExternalLink("forkLink", "").setVisible(false));
            
            if (user.canFork && !model.allowForks) {
            if (user.canFork() && !model.allowForks) {
               // show forks prohibited indicator
               Fragment wc = new Fragment("forksProhibitedIndicator", "forksProhibitedFragment", this);
               Label lbl = new Label("forksProhibited", getString("gb.forksProhibited"));
@@ -303,7 +334,7 @@
         RepositoryModel model = GitBlit.self().getRepositoryModel(
               GitBlitWebSession.get().getUser(), repositoryName);
         if (model == null) {
            if (GitBlit.self().hasRepository(repositoryName)) {
            if (GitBlit.self().hasRepository(repositoryName, true)) {
               // has repository, but unauthorized
               authenticationError(getString("gb.unauthorizedAccessForRepository") + " " + repositoryName);
            } else {
@@ -334,10 +365,6 @@
            submodules.put(model.path, model);
         }
      }
      return submodules;
   }
   protected Map<String, SubmoduleModel> getSubmodules() {
      return submodules;
   }
   
@@ -404,7 +431,7 @@
   }
   protected String getShortObjectId(String objectId) {
      return objectId.substring(0, 8);
      return objectId.substring(0, GitBlit.getInteger(Keys.web.shortCommitIdLength, 6));
   }
   protected void addRefs(Repository r, RevCommit c) {
@@ -427,6 +454,8 @@
         Constants.SearchType searchType) {
      String name = identity == null ? "" : identity.getName();
      String address = identity == null ? "" : identity.getEmailAddress();
      name = StringUtils.removeNewlines(name);
      address = StringUtils.removeNewlines(address);
      boolean showEmail = GitBlit.getBoolean(Keys.web.showEmailAddresses, false);
      if (!showEmail || StringUtils.isEmpty(name) || StringUtils.isEmpty(address)) {
         String value = name;
@@ -576,4 +605,4 @@
         getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));
      }
   }
}
}