From 1d968eb55eae7f0f6db087c9e8466b11800b888a Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Wed, 25 Oct 2017 08:52:50 -0400 Subject: PLT-7849 Add config setting to disable plugin uploads (#7666) * Add config setting to disable plugin uploads * Update unit test --- api4/plugin.go | 4 ++-- api4/plugin_test.go | 20 +++++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) (limited to 'api4') diff --git a/api4/plugin.go b/api4/plugin.go index c1ee986da..155a5c807 100644 --- a/api4/plugin.go +++ b/api4/plugin.go @@ -32,8 +32,8 @@ func (api *API) InitPlugin() { } func uploadPlugin(c *Context, w http.ResponseWriter, r *http.Request) { - if !*c.App.Config().PluginSettings.Enable { - c.Err = model.NewAppError("uploadPlugin", "app.plugin.disabled.app_error", nil, "", http.StatusNotImplemented) + if !*c.App.Config().PluginSettings.Enable || !*c.App.Config().PluginSettings.EnableUploads { + c.Err = model.NewAppError("uploadPlugin", "app.plugin.upload_disabled.app_error", nil, "", http.StatusNotImplemented) return } diff --git a/api4/plugin_test.go b/api4/plugin_test.go index a3f3bd49a..48ee4fb74 100644 --- a/api4/plugin_test.go +++ b/api4/plugin_test.go @@ -28,10 +28,17 @@ func TestPlugin(t *testing.T) { defer th.TearDown() enablePlugins := *th.App.Config().PluginSettings.Enable + enableUploadPlugins := *th.App.Config().PluginSettings.EnableUploads defer func() { - th.App.UpdateConfig(func(cfg *model.Config) { *cfg.PluginSettings.Enable = enablePlugins }) + th.App.UpdateConfig(func(cfg *model.Config) { + *cfg.PluginSettings.Enable = enablePlugins + *cfg.PluginSettings.EnableUploads = enableUploadPlugins + }) }() - th.App.UpdateConfig(func(cfg *model.Config) { *cfg.PluginSettings.Enable = true }) + th.App.UpdateConfig(func(cfg *model.Config) { + *cfg.PluginSettings.Enable = true + *cfg.PluginSettings.EnableUploads = true + }) th.App.InitPlugins(pluginDir, webappDir) defer func() { @@ -61,7 +68,14 @@ func TestPlugin(t *testing.T) { _, resp = th.SystemAdminClient.UploadPlugin(file) CheckNotImplementedStatus(t, resp) - th.App.UpdateConfig(func(cfg *model.Config) { *cfg.PluginSettings.Enable = true }) + th.App.UpdateConfig(func(cfg *model.Config) { + *cfg.PluginSettings.Enable = true + *cfg.PluginSettings.EnableUploads = false + }) + _, resp = th.SystemAdminClient.UploadPlugin(file) + CheckNotImplementedStatus(t, resp) + + th.App.UpdateConfig(func(cfg *model.Config) { *cfg.PluginSettings.EnableUploads = true }) _, resp = th.Client.UploadPlugin(file) CheckForbiddenStatus(t, resp) -- cgit v1.2.3-1-g7c22