From 05f229883c4e15e044c5c103acf69265cfb8806e Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 05 Jun 2014 08:38:35 -0400
Subject: [PATCH] Add a basic SSH public key management UI

---
 src/main/java/com/gitblit/wicket/pages/UserPage.java |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/UserPage.java b/src/main/java/com/gitblit/wicket/pages/UserPage.java
index baad4a0..4a955c7 100644
--- a/src/main/java/com/gitblit/wicket/pages/UserPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/UserPage.java
@@ -50,6 +50,7 @@
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.panels.ChoiceOption;
 import com.gitblit.wicket.panels.ProjectRepositoryPanel;
+import com.gitblit.wicket.panels.SshKeysPanel;
 import com.gitblit.wicket.panels.TextOption;
 import com.gitblit.wicket.panels.UserTitlePanel;
 
@@ -100,10 +101,22 @@
 
 		if (isMyProfile) {
 			addPreferences(user);
+
+			if (app().gitblit().isServingSSH()) {
+				// show the SSH key management tab
+				addSshKeys(user);
+			} else {
+				// SSH daemon is disabled, hide keys tab
+				add(new Label("sshKeysLink").setVisible(false));
+				add(new Label("sshKeysTab").setVisible(false));
+			}
 		} else {
 			// visiting user
 			add(new Label("preferencesLink").setVisible(false));
 			add(new Label("preferencesTab").setVisible(false));
+
+			add(new Label("sshKeysLink").setVisible(false));
+			add(new Label("sshKeysTab").setVisible(false));
 		}
 
 		List<RepositoryModel> repositories = getRepositories(params);
@@ -251,6 +264,15 @@
 		add(fragment.setRenderBodyOnly(true));
 	}
 
+	private void addSshKeys(final UserModel user) {
+		Fragment keysTab = new Fragment("sshKeysTab", "sshKeysTabFragment", this);
+		keysTab.add(new SshKeysPanel("sshKeysPanel", user, getClass(), getPageParameters()));
+
+		// add the SSH keys tab
+		add(new Fragment("sshKeysLink", "sshKeysLinkFragment", this).setRenderBodyOnly(true));
+		add(keysTab.setRenderBodyOnly(true));
+	}
+
 	private class Language implements Serializable {
 
 		private static final long serialVersionUID = 1L;

--
Gitblit v1.9.1