James Moger
2012-11-27 73f1adb2e84b8b9cd4045bcdd7d9afa72d3875b5
src/com/gitblit/wicket/pages/BasePage.java
@@ -15,6 +15,7 @@
 */
package com.gitblit.wicket.pages;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
@@ -52,7 +53,9 @@
import org.slf4j.LoggerFactory;
import com.gitblit.Constants;
import com.gitblit.Constants.AccessPermission;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.Constants.AuthorizationControl;
import com.gitblit.Constants.FederationStrategy;
import com.gitblit.GitBlit;
import com.gitblit.Keys;
@@ -76,14 +79,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() {
@@ -127,16 +130,17 @@
      super.onAfterRender();
   }   
   private void loginByCookie() {
      if (!GitBlit.getBoolean(Keys.web.allowCookieAuthentication, false)) {
         return;
      }
      UserModel user = null;
   private void login() {
      // try to authenticate by servlet request
      UserModel user = GitBlit.self().authenticate(((WebRequest) getRequestCycle().getRequest()).getHttpServletRequest());
      // Grab cookie from Browser Session
      Cookie[] cookies = ((WebRequest) getRequestCycle().getRequest()).getCookies();
      if (cookies != null && cookies.length > 0) {
         user = GitBlit.self().authenticate(cookies);
      if (user == null) {
         // try to authenticate by cookie
         Cookie[] cookies = ((WebRequest) getRequestCycle().getRequest()).getCookies();
         if (GitBlit.self().allowCookieAuthentication() && cookies != null && cookies.length > 0) {
            // Grab cookie from Browser Session
            user = GitBlit.self().authenticate(cookies);
         }
      }
      // Login the user
@@ -205,6 +209,39 @@
      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 EXCLUDE:
            map.put(type, MessageFormat.format(getString("gb.excludePermission"), 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()) {
@@ -222,6 +259,21 @@
      }
      return map;
   }
   protected Map<AuthorizationControl, String> getAuthorizationControls() {
      Map<AuthorizationControl, String> map = new LinkedHashMap<AuthorizationControl, String>();
      for (AuthorizationControl type : AuthorizationControl.values()) {
         switch (type) {
         case AUTHENTICATED:
            map.put(type, getString("gb.allowAuthenticatedDescription"));
            break;
         case NAMED:
            map.put(type, getString("gb.allowNamedDescription"));
            break;
         }
      }
      return map;
   }
   protected TimeZone getTimeZone() {
      return GitBlit.getBoolean(Keys.web.useClientTimezone, false) ? GitBlitWebSession.get()