From fc948cacef9c9b8c0a1e84cbc082ca67cd5f68d9 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 14 Apr 2011 18:29:10 -0400
Subject: [PATCH] Authenticate the webapp against the same realm as the git servlet.

---
 src/com/gitblit/wicket/pages/RepositoriesPage.java |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/RepositoriesPage.java b/src/com/gitblit/wicket/pages/RepositoriesPage.java
index 47d4512..3a43b0d 100644
--- a/src/com/gitblit/wicket/pages/RepositoriesPage.java
+++ b/src/com/gitblit/wicket/pages/RepositoriesPage.java
@@ -17,10 +17,11 @@
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 
+import com.gitblit.GitBlit;
 import com.gitblit.StoredSettings;
 import com.gitblit.utils.Utils;
 import com.gitblit.wicket.BasePage;
-import com.gitblit.wicket.GitBlitWebApp;
+import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.LinkPanel;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.models.RepositoryModel;
@@ -32,14 +33,22 @@
 		super();
 		setupPage("", "");
 		
+		boolean showAdmin = false;
+		if (StoredSettings.getBoolean("authenticateWebUI", true)) {
+			boolean allowAdmin = StoredSettings.getBoolean("allowAdministration", false);
+			showAdmin = allowAdmin && GitBlitWebSession.get().canAdmin(); 
+		} else {
+			showAdmin = StoredSettings.getBoolean("allowAdministration", false);
+		}
+		
 		Fragment adminLinks = new Fragment("adminPanel", "adminLinks", this);
 		adminLinks.add(new BookmarkablePageLink<Void>("newRepository", RepositoriesPage.class));
-		adminLinks.add(new BookmarkablePageLink<Void>("newUser", RepositoriesPage.class));
-		add(adminLinks.setVisible(StoredSettings.getBoolean("allowAdministration", false)));
+		adminLinks.add(new BookmarkablePageLink<Void>("newUser", RepositoriesPage.class));		
+		add(adminLinks.setVisible(showAdmin));
 		
 		add(new Label("repositoriesMessage", StoredSettings.getString("repositoriesMessage", "")).setEscapeModelStrings(false));
 
-		List<RepositoryModel> rows = GitBlitWebApp.get().getRepositories(getRequest());
+		List<RepositoryModel> rows = GitBlit.self().getRepositories(getRequest());
 		DataProvider dp = new DataProvider(rows);
 		DataView<RepositoryModel> dataView = new DataView<RepositoryModel>("repository", dp) {
 			private static final long serialVersionUID = 1L;

--
Gitblit v1.9.1