summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/manager/GitblitManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/gitblit/manager/GitblitManager.java')
-rw-r--r--src/main/java/com/gitblit/manager/GitblitManager.java124
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);
+ }
}