James Moger
2012-10-18 13417cf9c6eec555b51da49742e47939d2f5715b
src/com/gitblit/wicket/pages/BasePage.java
@@ -15,10 +15,10 @@
 */
package com.gitblit.wicket.pages;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
import java.util.LinkedHashMap;
@@ -36,6 +36,7 @@
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.PageParameters;
import org.apache.wicket.RedirectToUrlException;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.markup.html.CSSPackageResource;
import org.apache.wicket.markup.html.WebPage;
@@ -52,6 +53,7 @@
import org.slf4j.LoggerFactory;
import com.gitblit.Constants;
import com.gitblit.Constants.AccessPermission;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.Constants.FederationStrategy;
import com.gitblit.GitBlit;
@@ -63,7 +65,6 @@
import com.gitblit.utils.StringUtils;
import com.gitblit.utils.TimeUtils;
import com.gitblit.wicket.GitBlitWebSession;
import com.gitblit.wicket.PageRegistration.DropDownMenuItem;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.LinkPanel;
@@ -77,14 +78,14 @@
      super();
      logger = LoggerFactory.getLogger(getClass());
      customizeHeader();
      loginByCookie();
      login();
   }
   public BasePage(PageParameters params) {
      super(params);
      logger = LoggerFactory.getLogger(getClass());
      customizeHeader();
      loginByCookie();
      login();
   }
   
   private void customizeHeader() {
@@ -128,16 +129,14 @@
      super.onAfterRender();
   }   
   private void loginByCookie() {
      if (!GitBlit.getBoolean(Keys.web.allowCookieAuthentication, false)) {
         return;
      }
      UserModel user = null;
      // Grab cookie from Browser Session
   private void login() {
      Cookie[] cookies = ((WebRequest) getRequestCycle().getRequest()).getCookies();
      if (cookies != null && cookies.length > 0) {
      UserModel user = null;
      if (GitBlit.self().allowCookieAuthentication() && cookies != null && cookies.length > 0) {
         // Grab cookie from Browser Session
         user = GitBlit.self().authenticate(cookies);
      } else {
         user = GitBlit.self().authenticate(((WebRequest) getRequestCycle().getRequest()).getHttpServletRequest());
      }
      // Login the user
@@ -206,6 +205,36 @@
      return map;
   }
   
   protected Map<AccessPermission, String> getAccessPermissions() {
      Map<AccessPermission, String> map = new LinkedHashMap<AccessPermission, String>();
      for (AccessPermission type : AccessPermission.values()) {
         switch (type) {
         case NONE:
            map.put(type, MessageFormat.format(getString("gb.noPermission"), type.code));
            break;
         case VIEW:
            map.put(type, MessageFormat.format(getString("gb.viewPermission"), type.code));
            break;
         case CLONE:
            map.put(type, MessageFormat.format(getString("gb.clonePermission"), type.code));
            break;
         case PUSH:
            map.put(type, MessageFormat.format(getString("gb.pushPermission"), type.code));
            break;
         case CREATE:
            map.put(type, MessageFormat.format(getString("gb.createPermission"), type.code));
            break;
         case DELETE:
            map.put(type, MessageFormat.format(getString("gb.deletePermission"), type.code));
            break;
         case REWIND:
            map.put(type, MessageFormat.format(getString("gb.rewindPermission"), type.code));
            break;
         }
      }
      return map;
   }
   protected Map<FederationStrategy, String> getFederationTypes() {
      Map<FederationStrategy, String> map = new LinkedHashMap<FederationStrategy, String>();
      for (FederationStrategy type : FederationStrategy.values()) {
@@ -235,9 +264,9 @@
      return req.getServerName();
   }
   
   protected String getRepositoryUrl(RepositoryModel repository) {
   public static String getRepositoryUrl(RepositoryModel repository) {
      StringBuilder sb = new StringBuilder();
      sb.append(WicketUtils.getGitblitURL(getRequestCycle().getRequest()));
      sb.append(WicketUtils.getGitblitURL(RequestCycle.get().getRequest()));
      sb.append(Constants.GIT_PATH);
      sb.append(repository.name);
      
@@ -252,7 +281,7 @@
   
   protected List<ProjectModel> getProjectModels() {
      final UserModel user = GitBlitWebSession.get().getUser();
      List<ProjectModel> projects = GitBlit.self().getProjectModels(user);
      List<ProjectModel> projects = GitBlit.self().getProjectModels(user, true);
      return projects;
   }
   
@@ -298,7 +327,7 @@
         for (ProjectModel projectModel : availableModels) {
            for (String repositoryName : projectModel.repositories) {
               for (TeamModel teamModel : teamModels) {
                  if (teamModel.hasRepository(repositoryName)) {
                  if (teamModel.hasRepositoryPermission(repositoryName)) {
                     models.add(projectModel);
                  }
               }