diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-05-04 15:45:19 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-04 15:45:19 -0400 |
commit | 49481caf6db89b0853626ac52ab5f786a6887179 (patch) | |
tree | 128991892f16d7830097c217db689410a002eb73 /api | |
parent | 44a8f76d993cdd97785cab7fd55ad9f07c3c757a (diff) | |
download | chat-49481caf6db89b0853626ac52ab5f786a6887179.tar.gz chat-49481caf6db89b0853626ac52ab5f786a6887179.tar.bz2 chat-49481caf6db89b0853626ac52ab5f786a6887179.zip |
PLT-6262 Add config setting to disable file attachments (#6301)
* Add config setting to disable file attachments
* Add unit tests
* Updating UI for no attachments (#6312)
* Update UI text on file upload System Console setting (#6313)
* Update storage_settings.jsx
* Update en.json
Diffstat (limited to 'api')
-rw-r--r-- | api/file.go | 9 | ||||
-rw-r--r-- | api/file_test.go | 12 |
2 files changed, 18 insertions, 3 deletions
diff --git a/api/file.go b/api/file.go index 0f2fd9319..9a5de5669 100644 --- a/api/file.go +++ b/api/file.go @@ -31,6 +31,11 @@ func InitFile() { } func uploadFile(c *Context, w http.ResponseWriter, r *http.Request) { + if !*utils.Cfg.FileSettings.EnableFileAttachments { + c.Err = model.NewAppError("uploadFile", "api.file.attachments.disabled.app_error", nil, "", http.StatusNotImplemented) + return + } + if r.ContentLength > *utils.Cfg.FileSettings.MaxFileSize { c.Err = model.NewLocAppError("uploadFile", "api.file.upload_file.too_large.app_error", nil, "") c.Err.StatusCode = http.StatusRequestEntityTooLarge @@ -181,9 +186,7 @@ func getPublicFile(c *Context, w http.ResponseWriter, r *http.Request) { func getFileInfoForRequest(c *Context, r *http.Request, requireFileVisible bool) (*model.FileInfo, *model.AppError) { if len(utils.Cfg.FileSettings.DriverName) == 0 { - err := model.NewLocAppError("getFileInfoForRequest", "api.file.get_file_info_for_request.storage.app_error", nil, "") - err.StatusCode = http.StatusNotImplemented - return nil, err + return nil, model.NewAppError("getFileInfoForRequest", "api.file.get_info_for_request.storage.app_error", nil, "", http.StatusNotImplemented) } params := mux.Vars(r) diff --git a/api/file_test.go b/api/file_test.go index 1e65c33e8..40534d724 100644 --- a/api/file_test.go +++ b/api/file_test.go @@ -99,6 +99,18 @@ func TestUploadFile(t *testing.T) { t.Fatalf("file preview should've been saved in %v", expectedPreviewPath) } + enableFileAttachments := *utils.Cfg.FileSettings.EnableFileAttachments + defer func() { + *utils.Cfg.FileSettings.EnableFileAttachments = enableFileAttachments + }() + *utils.Cfg.FileSettings.EnableFileAttachments = false + + if data, err := readTestFile("test.png"); err != nil { + t.Fatal(err) + } else if _, err = Client.UploadPostAttachment(data, channel.Id, "test.png"); err == nil { + t.Fatal("should have errored") + } + // Wait a bit for files to ready time.Sleep(2 * time.Second) |