diff options
Diffstat (limited to 'api')
-rw-r--r-- | api/post.go | 5 | ||||
-rw-r--r-- | api/post_test.go | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/api/post.go b/api/post.go index 9c22dc5ee..4e7801e2b 100644 --- a/api/post.go +++ b/api/post.go @@ -452,6 +452,11 @@ func getFileInfosForPost(c *Context, w http.ResponseWriter, r *http.Request) { } func getOpenGraphMetadata(c *Context, w http.ResponseWriter, r *http.Request) { + if !*utils.Cfg.ServiceSettings.EnableLinkPreviews { + c.Err = model.NewAppError("getOpenGraphMetadata", "api.post.link_preview_disabled.app_error", nil, "", http.StatusNotImplemented) + return + } + props := model.StringInterfaceFromJson(r.Body) ogJSONGeneric, ok := openGraphDataCache.Get(props["url"]) diff --git a/api/post_test.go b/api/post_test.go index b93b5b6a6..39ef2f6c0 100644 --- a/api/post_test.go +++ b/api/post_test.go @@ -1307,6 +1307,12 @@ func TestGetOpenGraphMetadata(t *testing.T) { th := Setup().InitBasic() Client := th.BasicClient + enableLinkPreviews := *utils.Cfg.ServiceSettings.EnableLinkPreviews + defer func() { + *utils.Cfg.ServiceSettings.EnableLinkPreviews = enableLinkPreviews + }() + *utils.Cfg.ServiceSettings.EnableLinkPreviews = true + ogDataCacheMissCount := 0 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { @@ -1355,4 +1361,9 @@ func TestGetOpenGraphMetadata(t *testing.T) { )) } } + + *utils.Cfg.ServiceSettings.EnableLinkPreviews = false + if _, err := Client.DoApiPost("/get_opengraph_metadata", "{\"url\":\"/og-data/\"}"); err == nil || err.StatusCode != http.StatusNotImplemented { + t.Fatal("should have failed with 501 - disabled link previews") + } } |