diff options
Diffstat (limited to 'src/main/java/com/gitblit/manager/GitblitManager.java')
-rw-r--r-- | src/main/java/com/gitblit/manager/GitblitManager.java | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/src/main/java/com/gitblit/manager/GitblitManager.java b/src/main/java/com/gitblit/manager/GitblitManager.java index b6c2b474..5fca0c24 100644 --- a/src/main/java/com/gitblit/manager/GitblitManager.java +++ b/src/main/java/com/gitblit/manager/GitblitManager.java @@ -42,6 +42,9 @@ import org.eclipse.jgit.transport.RefSpec; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import ro.fortsoft.pf4j.PluginState; +import ro.fortsoft.pf4j.PluginWrapper; + import com.gitblit.Constants; import com.gitblit.Constants.AccessPermission; import com.gitblit.Constants.AccessRestrictionType; @@ -57,6 +60,9 @@ import com.gitblit.models.ForkModel; import com.gitblit.models.GitClientApplication; import com.gitblit.models.Mailing; import com.gitblit.models.Metric; +import com.gitblit.models.PluginRegistry.InstallState; +import com.gitblit.models.PluginRegistry.PluginRegistration; +import com.gitblit.models.PluginRegistry.PluginRelease; import com.gitblit.models.ProjectModel; import com.gitblit.models.RegistrantAccessPermission; import com.gitblit.models.RepositoryModel; @@ -68,6 +74,8 @@ import com.gitblit.models.SettingModel; import com.gitblit.models.TeamModel; import com.gitblit.models.UserModel; import com.gitblit.tickets.ITicketService; +import com.gitblit.transport.ssh.IPublicKeyManager; +import com.gitblit.transport.ssh.SshKey; import com.gitblit.utils.ArrayUtils; import com.gitblit.utils.HttpUtils; import com.gitblit.utils.JsonUtils; @@ -100,12 +108,16 @@ public class GitblitManager implements IGitblit { protected final IRuntimeManager runtimeManager; + protected final IPluginManager pluginManager; + protected final INotificationManager notificationManager; protected final IUserManager userManager; protected final IAuthenticationManager authenticationManager; + protected final IPublicKeyManager publicKeyManager; + protected final IRepositoryManager repositoryManager; protected final IProjectManager projectManager; @@ -114,18 +126,22 @@ public class GitblitManager implements IGitblit { public GitblitManager( IRuntimeManager runtimeManager, + IPluginManager pluginManager, INotificationManager notificationManager, IUserManager userManager, IAuthenticationManager authenticationManager, + IPublicKeyManager publicKeyManager, IRepositoryManager repositoryManager, IProjectManager projectManager, IFederationManager federationManager) { this.settings = runtimeManager.getSettings(); this.runtimeManager = runtimeManager; + this.pluginManager = pluginManager; this.notificationManager = notificationManager; this.userManager = userManager; this.authenticationManager = authenticationManager; + this.publicKeyManager = publicKeyManager; this.repositoryManager = repositoryManager; this.projectManager = projectManager; this.federationManager = federationManager; @@ -322,6 +338,9 @@ public class GitblitManager implements IGitblit { repositoryManager.updateRepositoryModel(model.name, model, false); } } + + // rename the user's ssh public keystore + getPublicKeyManager().renameUser(username, user.username); } if (!userManager.updateUserModel(username, user)) { throw new GitBlitException("Failed to update user!"); @@ -523,6 +542,11 @@ public class GitblitManager implements IGitblit { throw new RuntimeException("This class does not have a ticket service!"); } + @Override + public IPublicKeyManager getPublicKeyManager() { + return publicKeyManager; + } + /* * ISTOREDSETTINGS * @@ -651,6 +675,12 @@ public class GitblitManager implements IGitblit { } return user; } + + @Override + public UserModel authenticate(String username, SshKey key) { + return authenticationManager.authenticate(username, key); + } + @Override public UserModel authenticate(HttpServletRequest httpRequest, boolean requiresCertificate) { UserModel user = authenticationManager.authenticate(httpRequest, requiresCertificate); @@ -1154,4 +1184,98 @@ public class GitblitManager implements IGitblit { public boolean isIdle(Repository repository) { return repositoryManager.isIdle(repository); } + + /* + * PLUGIN MANAGER + */ + + @Override + public void startPlugins() { + pluginManager.startPlugins(); + } + + @Override + public void stopPlugins() { + pluginManager.stopPlugins(); + } + + @Override + public List<PluginWrapper> getPlugins() { + return pluginManager.getPlugins(); + } + + @Override + public PluginWrapper getPlugin(String pluginId) { + return pluginManager.getPlugin(pluginId); + } + + @Override + public List<Class<?>> getExtensionClasses(String pluginId) { + return pluginManager.getExtensionClasses(pluginId); + } + + @Override + public <T> List<T> getExtensions(Class<T> clazz) { + return pluginManager.getExtensions(clazz); + } + + @Override + public PluginWrapper whichPlugin(Class<?> clazz) { + return pluginManager.whichPlugin(clazz); + } + + @Override + public PluginState startPlugin(String pluginId) { + return pluginManager.startPlugin(pluginId); + } + + @Override + public PluginState stopPlugin(String pluginId) { + return pluginManager.stopPlugin(pluginId); + } + + @Override + public boolean disablePlugin(String pluginId) { + return pluginManager.disablePlugin(pluginId); + } + + @Override + public boolean enablePlugin(String pluginId) { + return pluginManager.enablePlugin(pluginId); + } + + @Override + public boolean deletePlugin(String pluginId) { + return pluginManager.deletePlugin(pluginId); + } + + @Override + public boolean refreshRegistry(boolean verifyChecksum) { + return pluginManager.refreshRegistry(verifyChecksum); + } + + @Override + public boolean installPlugin(String url, boolean verifyChecksum) throws IOException { + return pluginManager.installPlugin(url, verifyChecksum); + } + + @Override + public List<PluginRegistration> getRegisteredPlugins() { + return pluginManager.getRegisteredPlugins(); + } + + @Override + public List<PluginRegistration> getRegisteredPlugins(InstallState state) { + return pluginManager.getRegisteredPlugins(state); + } + + @Override + public PluginRegistration lookupPlugin(String idOrName) { + return pluginManager.lookupPlugin(idOrName); + } + + @Override + public PluginRelease lookupRelease(String idOrName, String version) { + return pluginManager.lookupRelease(idOrName, version); + } } |