From c93aca84c5bda483ebf03a72f814336e27f0198f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 28 Nov 2012 17:54:53 -0500
Subject: [PATCH] Show a confirmation prompt on first startup of GCA if Unlimited Strength is unavailable

---
 src/com/gitblit/wicket/pages/BasePage.java |   76 ++++++++++++++++++++++++++++++++------
 1 files changed, 64 insertions(+), 12 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/BasePage.java b/src/com/gitblit/wicket/pages/BasePage.java
index 00d9677..05640ad 100644
--- a/src/com/gitblit/wicket/pages/BasePage.java
+++ b/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()) {
@@ -217,6 +254,21 @@
 				break;
 			case FEDERATE_ORIGIN:
 				map.put(type, getString("gb.federateOrigin"));
+				break;
+			}
+		}
+		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;
 			}
 		}
@@ -297,7 +349,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);
 						}
 					}

--
Gitblit v1.9.1