summaryrefslogtreecommitdiffstats
path: root/api4
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-10-25 08:52:50 -0400
committerGitHub <noreply@github.com>2017-10-25 08:52:50 -0400
commit1d968eb55eae7f0f6db087c9e8466b11800b888a (patch)
tree5561d7cda13278d217d7b5b19c2ec991819a0f97 /api4
parent5474cff0ebab8c42f1b0750ac054a8c762b43a37 (diff)
downloadchat-1d968eb55eae7f0f6db087c9e8466b11800b888a.tar.gz
chat-1d968eb55eae7f0f6db087c9e8466b11800b888a.tar.bz2
chat-1d968eb55eae7f0f6db087c9e8466b11800b888a.zip
PLT-7849 Add config setting to disable plugin uploads (#7666)
* Add config setting to disable plugin uploads * Update unit test
Diffstat (limited to 'api4')
-rw-r--r--api4/plugin.go4
-rw-r--r--api4/plugin_test.go20
2 files changed, 19 insertions, 5 deletions
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)