From ec0ce1621a3e145d5786c0c26caffd0c5c3acd61 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 03 Oct 2012 17:50:48 -0400
Subject: [PATCH] Fix anonymous browsing of user profile page

---
 src/com/gitblit/models/RepositoryModel.java               |    4 ++++
 src/com/gitblit/models/UserModel.java                     |    2 +-
 src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java |    5 ++++-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/com/gitblit/models/RepositoryModel.java b/src/com/gitblit/models/RepositoryModel.java
index 65629fa..caf7e7e 100644
--- a/src/com/gitblit/models/RepositoryModel.java
+++ b/src/com/gitblit/models/RepositoryModel.java
@@ -152,6 +152,10 @@
 		return !StringUtils.isEmpty(originRepository);
 	}
 	
+	public boolean isOwner(String username) {
+		return owner != null && username != null && owner.equalsIgnoreCase(username);
+	}
+	
 	public boolean isPersonalRepository() {
 		return !StringUtils.isEmpty(projectPath) && projectPath.charAt(0) == '~';
 	}
diff --git a/src/com/gitblit/models/UserModel.java b/src/com/gitblit/models/UserModel.java
index 6d5de3b..dd41df0 100644
--- a/src/com/gitblit/models/UserModel.java
+++ b/src/com/gitblit/models/UserModel.java
@@ -59,7 +59,7 @@
 	}
 
 	private UserModel() {
-		this.username = "anonymous";
+		this.username = "$anonymous";
 		this.isAuthenticated = false;
 	}
 
diff --git a/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java b/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
index 0a6bc62..50f0d52 100644
--- a/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
+++ b/src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
@@ -134,8 +134,11 @@
 		}
 
 		UserModel user = GitBlitWebSession.get().getUser();
+		if (user == null) {
+			user = UserModel.ANONYMOUS;
+		}
 		Fragment repositoryLinks;
-		boolean showOwner = user != null && user.username.equalsIgnoreCase(entry.owner);
+		boolean showOwner = entry.isOwner(user.username);
 		// owner of personal repository gets admin powers
 		boolean showAdmin = isAdmin || entry.isUsersPersonalRepository(user.username);
 

--
Gitblit v1.9.1