From 9af47c10c6a268877c1d232c8d71ee6df4f8a7ab Mon Sep 17 00:00:00 2001
From: Jeroen Baten <jeroen@jeroenbaten.nl>
Date: Fri, 04 Jan 2013 05:18:37 -0500
Subject: [PATCH] Dutch translation before spellcheck

---
 src/com/gitblit/wicket/pages/RootSubPage.java |   37 ++++++++++++++++++++++++++++++++-----
 1 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/RootSubPage.java b/src/com/gitblit/wicket/pages/RootSubPage.java
index 30d296e..e7e12cc 100644
--- a/src/com/gitblit/wicket/pages/RootSubPage.java
+++ b/src/com/gitblit/wicket/pages/RootSubPage.java
@@ -19,11 +19,14 @@
 import java.util.List;
 
 import org.apache.wicket.PageParameters;
+import org.apache.wicket.Session;
 import org.apache.wicket.markup.html.basic.Label;
 
-import com.gitblit.GitBlit;
 import com.gitblit.Constants.AccessRestrictionType;
+import com.gitblit.Constants.AuthorizationControl;
+import com.gitblit.GitBlit;
 import com.gitblit.models.RepositoryModel;
+import com.gitblit.models.UserModel;
 import com.gitblit.utils.StringUtils;
 
 /**
@@ -36,10 +39,27 @@
 
 	public RootSubPage() {
 		super();
+		createPageMapIfNeeded();
 	}
 
 	public RootSubPage(PageParameters params) {
 		super(params);
+		createPageMapIfNeeded();
+	}
+	
+	protected boolean requiresPageMap() {
+		return false;
+	}
+	
+	protected void createPageMapIfNeeded() {
+		if (requiresPageMap()) {
+			// because Gitblit strives for page-statelessness
+			// Wicket seems to get confused as to when it really should
+			// generate a page map for complex pages.  Conditionally ensure we
+			// have a page map for complex AJAX pages like the EditNNN pages.
+			Session.get().pageMapForName(null, true);
+			setVersioned(true);
+		}
 	}
 
 	@Override
@@ -52,7 +72,7 @@
 		super.setupPage("", pageName);
 	}
 	
-	protected List<String> getAccessRestrictedRepositoryList(boolean includeWildcards) {
+	protected List<String> getAccessRestrictedRepositoryList(boolean includeWildcards, UserModel user) {
 		// build list of access-restricted projects
 		String lastProject = null;
 		List<String> repos = new ArrayList<String>();
@@ -62,19 +82,26 @@
 			// all repositories excluding personal repositories
 			repos.add("[^~].*");
 		}
+		
 		for (String repo : GitBlit.self().getRepositoryList()) {
 			RepositoryModel repositoryModel = GitBlit.self().getRepositoryModel(repo);
-			if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) {
+			if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)
+					&& repositoryModel.authorizationControl.equals(AuthorizationControl.NAMED)) {
+				if (user != null &&
+						(repositoryModel.isOwner(user.username) || repositoryModel.isUsersPersonalRepository(user.username))) {
+					// exclude Owner or personal repositories
+					continue;
+				}
 				if (includeWildcards) {
 					if (lastProject == null || !lastProject.equalsIgnoreCase(repositoryModel.projectPath)) {
-						lastProject = repositoryModel.projectPath;
+						lastProject = repositoryModel.projectPath.toLowerCase();
 						if (!StringUtils.isEmpty(repositoryModel.projectPath)) {
 							// regex for all repositories within a project
 							repos.add(repositoryModel.projectPath + "/.*");
 						}
 					}
 				}
-				repos.add(repo);
+				repos.add(repo.toLowerCase());
 			}
 		}
 		return repos;

--
Gitblit v1.9.1