From 8d96b960e472433d2b4a5b71df7000bf1fbde648 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 10 Apr 2014 18:58:10 -0400 Subject: [PATCH] Track the SSH public key used for a session and add a `keys which` command --- src/main/java/com/gitblit/GitBlit.java | 34 +++++++++++++++++++++++++++++++++- 1 files changed, 33 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java index 817d18c..0ffff31 100644 --- a/src/main/java/com/gitblit/GitBlit.java +++ b/src/main/java/com/gitblit/GitBlit.java @@ -28,6 +28,7 @@ import com.gitblit.manager.IFederationManager; import com.gitblit.manager.IGitblit; import com.gitblit.manager.INotificationManager; +import com.gitblit.manager.IPluginManager; import com.gitblit.manager.IProjectManager; import com.gitblit.manager.IRepositoryManager; import com.gitblit.manager.IRuntimeManager; @@ -41,6 +42,7 @@ import com.gitblit.tickets.ITicketService; import com.gitblit.tickets.NullTicketService; import com.gitblit.tickets.RedisTicketService; +import com.gitblit.transport.ssh.IPublicKeyManager; import com.gitblit.utils.StringUtils; import dagger.Module; @@ -64,17 +66,21 @@ public GitBlit( IRuntimeManager runtimeManager, + IPluginManager pluginManager, INotificationManager notificationManager, IUserManager userManager, IAuthenticationManager authenticationManager, + IPublicKeyManager publicKeyManager, IRepositoryManager repositoryManager, IProjectManager projectManager, IFederationManager federationManager) { super(runtimeManager, + pluginManager, notificationManager, userManager, authenticationManager, + publicKeyManager, repositoryManager, projectManager, federationManager); @@ -99,6 +105,11 @@ servicesManager.stop(); ticketService.stop(); return this; + } + + @Override + public boolean isServingRepositories() { + return servicesManager.isServingRepositories(); } protected Object [] getModules() { @@ -185,6 +196,27 @@ } /** + * Delete the user and all associated public ssh keys. + */ + @Override + public boolean deleteUser(String username) { + boolean success = userManager.deleteUser(username); + if (success) { + getPublicKeyManager().removeAllKeys(username); + } + return success; + } + + @Override + public boolean deleteUserModel(UserModel model) { + boolean success = userManager.deleteUserModel(model); + if (success) { + getPublicKeyManager().removeAllKeys(model.username); + } + return success; + } + + /** * Delete the repository and all associated tickets. */ @Override @@ -262,7 +294,7 @@ FileTicketService.class, BranchTicketService.class, RedisTicketService.class - } + } ) class GitBlitModule { -- Gitblit v1.9.1