From 9753cb59f1f1d866943a485dd7c917d1b68f6eda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 24 May 2018 12:25:52 +0200 Subject: [PATCH] Support DNT in Twitter shortcode for GDPR Fixes #4765 --- config/privacy/privacyConfig.go | 4 ++++ config/privacy/privacyConfig_test.go | 2 ++ tpl/tplimpl/embedded/templates.autogen.go | 4 +++- tpl/tplimpl/embedded/templates/shortcodes/twitter.html | 4 +++- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/config/privacy/privacyConfig.go b/config/privacy/privacyConfig.go index bcffec8af..9c2a8df66 100644 --- a/config/privacy/privacyConfig.go +++ b/config/privacy/privacyConfig.go @@ -67,6 +67,10 @@ type SpeakerDeck struct { // Twitter holds the privacy configuration settingsrelated to the Twitter shortcode. type Twitter struct { Service `mapstructure:",squash"` + + // When set to true, the Tweet and its embedded page on your site are not used + // for purposes that include personalized suggestions and personalized ads. + EnableDNT bool } // Vimeo holds the privacy configuration settingsrelated to the Vimeo shortcode. diff --git a/config/privacy/privacyConfig_test.go b/config/privacy/privacyConfig_test.go index 0efc734db..6b07ef7e6 100644 --- a/config/privacy/privacyConfig_test.go +++ b/config/privacy/privacyConfig_test.go @@ -41,6 +41,7 @@ simple = true disable = true [privacy.twitter] disable = true +enableDNT = true [privacy.vimeo] disable = true [privacy.youtube] @@ -62,6 +63,7 @@ simple = true assert.True(pc.Instagram.Simple) assert.True(pc.SpeakerDeck.Disable) assert.True(pc.Twitter.Disable) + assert.True(pc.Twitter.EnableDNT) assert.True(pc.Vimeo.Disable) assert.True(pc.YouTube.PrivacyEnhanced) diff --git a/tpl/tplimpl/embedded/templates.autogen.go b/tpl/tplimpl/embedded/templates.autogen.go index 94e4c33ab..a64ff83bf 100644 --- a/tpl/tplimpl/embedded/templates.autogen.go +++ b/tpl/tplimpl/embedded/templates.autogen.go @@ -365,7 +365,9 @@ M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.5 {{- end -}}`}, {`shortcodes/twitter.html`, `{{- $pc := .Page.Site.Config.Privacy.Twitter -}} {{- if not $pc.Disable -}} -{{ (getJSON "https://api.twitter.com/1/statuses/oembed.json?id=" (index .Params 0)).html | safeHTML }} +{{ $url := printf "https://api.twitter.com/1/statuses/oembed.json?id=%s&dnt=%t" (index .Params 0) $pc.EnableDNT }} +{{ $json := getJSON $url }} +{{ $json.html | safeHTML }} {{- end -}}`}, {`shortcodes/vimeo.html`, `{{- $pc := .Page.Site.Config.Privacy.Vimeo -}} {{- if not $pc.Disable -}} diff --git a/tpl/tplimpl/embedded/templates/shortcodes/twitter.html b/tpl/tplimpl/embedded/templates/shortcodes/twitter.html index d9bef725f..62dd21592 100755 --- a/tpl/tplimpl/embedded/templates/shortcodes/twitter.html +++ b/tpl/tplimpl/embedded/templates/shortcodes/twitter.html @@ -1,4 +1,6 @@ {{- $pc := .Page.Site.Config.Privacy.Twitter -}} {{- if not $pc.Disable -}} -{{ (getJSON "https://api.twitter.com/1/statuses/oembed.json?id=" (index .Params 0)).html | safeHTML }} +{{ $url := printf "https://api.twitter.com/1/statuses/oembed.json?id=%s&dnt=%t" (index .Params 0) $pc.EnableDNT }} +{{ $json := getJSON $url }} +{{ $json.html | safeHTML }} {{- end -}} \ No newline at end of file