From 6d23cab9f5387ca2b57f60b26936ff8af0acc8fa Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 19 Oct 2012 22:45:30 -0400
Subject: [PATCH] Added UserModel null check

---
 src/com/gitblit/wicket/pages/BasePage.java |   29 +++++++++++++----------------
 1 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/BasePage.java b/src/com/gitblit/wicket/pages/BasePage.java
index f9f90b0..4d37611 100644
--- a/src/com/gitblit/wicket/pages/BasePage.java
+++ b/src/com/gitblit/wicket/pages/BasePage.java
@@ -18,7 +18,6 @@
 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 +35,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;
@@ -63,7 +63,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 +76,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 +127,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
@@ -235,9 +232,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 +249,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 +295,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