From c721a5d012ac3b841e1203ccd7fb60981a345c83 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 30 Oct 2012 17:28:28 -0400
Subject: [PATCH] Replaced fork icon

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

diff --git a/src/com/gitblit/wicket/pages/UserPage.java b/src/com/gitblit/wicket/pages/UserPage.java
index cabefb4..d3e93c6 100644
--- a/src/com/gitblit/wicket/pages/UserPage.java
+++ b/src/com/gitblit/wicket/pages/UserPage.java
@@ -21,8 +21,8 @@
 import java.util.List;
 
 import org.apache.wicket.PageParameters;
-import org.apache.wicket.RedirectException;
 import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.markup.repeater.data.ListDataProvider;
@@ -36,6 +36,7 @@
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.GitBlitWebApp;
 import com.gitblit.wicket.GitBlitWebSession;
+import com.gitblit.wicket.GitblitRedirectException;
 import com.gitblit.wicket.PageRegistration;
 import com.gitblit.wicket.PageRegistration.DropDownMenuItem;
 import com.gitblit.wicket.PageRegistration.DropDownMenuRegistration;
@@ -50,7 +51,7 @@
 
 	public UserPage() {
 		super();
-		throw new RedirectException(GitBlitWebApp.get().getHomePage());
+		throw new GitblitRedirectException(GitBlitWebApp.get().getHomePage());
 	}
 
 	public UserPage(PageParameters params) {
@@ -74,7 +75,7 @@
 
 		String userName = WicketUtils.getUsername(params);
 		if (StringUtils.isEmpty(userName)) {
-			throw new RedirectException(GitBlitWebApp.get().getHomePage());
+			throw new GitblitRedirectException(GitBlitWebApp.get().getHomePage());
 		}
 
 		UserModel user = GitBlit.self().getUserModel(userName);
@@ -87,7 +88,7 @@
 		
 		ProjectModel project = GitBlit.self().getProjectModel(projectName);
 		if (project == null) {
-			throw new RedirectException(GitBlitWebApp.get().getHomePage());
+			project = new ProjectModel(projectName);
 		}
 		
 		add(new Label("userDisplayName", user.getDisplayName()));
@@ -99,6 +100,14 @@
 		PersonIdent person = new PersonIdent(user.getDisplayName(), user.emailAddress);
 		add(new GravatarImage("gravatar", person, 210));
 		
+		UserModel sessionUser = GitBlitWebSession.get().getUser();
+		if (sessionUser != null && user.canCreate() && sessionUser.equals(user)) {
+			// user can create personal repositories
+			add(new BookmarkablePageLink<Void>("newRepository", EditRepositoryPage.class));
+		} else {
+			add(new Label("newRepository").setVisible(false));
+		}
+		
 		List<RepositoryModel> repositories = getRepositories(params);
 		
 		Collections.sort(repositories, new Comparator<RepositoryModel>() {

--
Gitblit v1.9.1