summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-03-06 21:13:12 -0500
committerChristopher Speller <crspeller@gmail.com>2017-03-06 21:13:12 -0500
commite87f5c6cf912a4f650a056ee042f19268963177d (patch)
tree5bd573a645e8a3931ca2ee7131cac75d58871a5f /api
parentf99658152ac2e188d8196758ef5c635eaa3b3ae7 (diff)
downloadchat-e87f5c6cf912a4f650a056ee042f19268963177d.tar.gz
chat-e87f5c6cf912a4f650a056ee042f19268963177d.tar.bz2
chat-e87f5c6cf912a4f650a056ee042f19268963177d.zip
Add system console switch for enabling link previews (#5663)
Diffstat (limited to 'api')
-rw-r--r--api/post.go5
-rw-r--r--api/post_test.go11
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")
+ }
}