From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 25 Feb 2013 08:40:30 -0500 Subject: [PATCH] Merge pull request #75 from thefake/master --- src/com/gitblit/wicket/pages/UserPage.java | 19 ++++++++++++++----- 1 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/com/gitblit/wicket/pages/UserPage.java b/src/com/gitblit/wicket/pages/UserPage.java index cabefb4..f4331dd 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())); @@ -96,9 +97,17 @@ email.setRenderBodyOnly(true); add(email.setVisible(GitBlit.getBoolean(Keys.web.showEmailAddresses, true) && !StringUtils.isEmpty(user.emailAddress))); - PersonIdent person = new PersonIdent(user.getDisplayName(), user.emailAddress); + PersonIdent person = new PersonIdent(user.getDisplayName(), user.emailAddress == null ? 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