diff --git a/tests/unit/test_csp.py b/tests/unit/test_csp.py index dc1df05b9051..94487131feb9 100644 --- a/tests/unit/test_csp.py +++ b/tests/unit/test_csp.py @@ -216,6 +216,7 @@ def test_includeme(): "camo.url.value", "www.google-analytics.com", "*.fastly-insights.com", + "*.ethicalads.io", ], "script-src": [ "'self'", @@ -223,8 +224,16 @@ def test_includeme(): "www.google-analytics.com", "*.fastly-insights.com", "https://cdn.ravenjs.com", + "*.ethicalads.io", + "'sha256-ozc1u5ldloj5JQ7atdxk8OzBc9sWZf84E9kk+qQuqfU='", + ], + "style-src": [ + "'self'", + "fonts.googleapis.com", + "*.ethicalads.io", + "'sha256-3SFGwf4pbwaaParsaRO14/phF13lRoCzJal+Qb8dOlk='", + "'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='", ], - "style-src": ["'self'", "fonts.googleapis.com"], "worker-src": ["*.fastly-insights.com"], } } diff --git a/warehouse/csp.py b/warehouse/csp.py index a141aeaac2fc..907cf178ad52 100644 --- a/warehouse/csp.py +++ b/warehouse/csp.py @@ -99,6 +99,7 @@ def includeme(config): config.registry.settings["camo.url"], "www.google-analytics.com", "*.fastly-insights.com", + "*.ethicalads.io", ], "script-src": [ SELF, @@ -106,8 +107,18 @@ def includeme(config): "www.google-analytics.com", "*.fastly-insights.com", "https://cdn.ravenjs.com", + "*.ethicalads.io", + # Hash for ethicalads-v1.3.0.min.js + "'sha256-ozc1u5ldloj5JQ7atdxk8OzBc9sWZf84E9kk+qQuqfU='", + ], + "style-src": [ + SELF, + "fonts.googleapis.com", + "*.ethicalads.io", + # Hashes for inline styles generated by ethicalads-v1.3.0.min.js + "'sha256-3SFGwf4pbwaaParsaRO14/phF13lRoCzJal+Qb8dOlk='", + "'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='", ], - "style-src": [SELF, "fonts.googleapis.com"], "worker-src": ["*.fastly-insights.com"], } } diff --git a/warehouse/locale/messages.pot b/warehouse/locale/messages.pot index 4bf2cc0a8696..efbadc3e0ef3 100644 --- a/warehouse/locale/messages.pot +++ b/warehouse/locale/messages.pot @@ -294,13 +294,13 @@ msgstr "" #: warehouse/templates/404.html:34 warehouse/templates/500.html:28 #: warehouse/templates/500.html:29 #: warehouse/templates/accounts/two-factor.html:55 -#: warehouse/templates/base.html:268 warehouse/templates/base.html:269 -#: warehouse/templates/base.html:270 warehouse/templates/base.html:280 -#: warehouse/templates/base.html:281 warehouse/templates/base.html:282 -#: warehouse/templates/base.html:293 warehouse/templates/base.html:294 -#: warehouse/templates/base.html:295 warehouse/templates/base.html:304 -#: warehouse/templates/base.html:306 warehouse/templates/base.html:317 -#: warehouse/templates/base.html:326 +#: warehouse/templates/base.html:273 warehouse/templates/base.html:274 +#: warehouse/templates/base.html:275 warehouse/templates/base.html:285 +#: warehouse/templates/base.html:286 warehouse/templates/base.html:287 +#: warehouse/templates/base.html:298 warehouse/templates/base.html:299 +#: warehouse/templates/base.html:300 warehouse/templates/base.html:309 +#: warehouse/templates/base.html:311 warehouse/templates/base.html:322 +#: warehouse/templates/base.html:331 #: warehouse/templates/includes/accounts/profile-actions.html:21 #: warehouse/templates/includes/accounts/profile-actions.html:30 #: warehouse/templates/includes/accounts/profile-callout.html:18 @@ -319,7 +319,7 @@ msgstr "" #: warehouse/templates/manage/release.html:175 #: warehouse/templates/manage/releases.html:140 #: warehouse/templates/manage/releases.html:173 -#: warehouse/templates/packaging/detail.html:318 +#: warehouse/templates/packaging/detail.html:317 #: warehouse/templates/pages/classifiers.html:25 #: warehouse/templates/pages/help.html:20 #: warehouse/templates/pages/help.html:207 @@ -465,7 +465,7 @@ msgid "Main navigation" msgstr "" #: warehouse/templates/base.html:41 warehouse/templates/base.html:55 -#: warehouse/templates/base.html:265 +#: warehouse/templates/base.html:270 #: warehouse/templates/includes/current-user-indicator.html:55 #: warehouse/templates/pages/help.html:105 #: warehouse/templates/pages/sitemap.html:27 @@ -518,16 +518,16 @@ msgstr "" msgid "RSS: 40 newest packages" msgstr "" -#: warehouse/templates/base.html:150 +#: warehouse/templates/base.html:155 msgid "Skip to main content" msgstr "" -#: warehouse/templates/base.html:153 +#: warehouse/templates/base.html:158 msgid "Switch to mobile version" msgstr "" -#: warehouse/templates/base.html:162 warehouse/templates/base.html:171 -#: warehouse/templates/base.html:181 +#: warehouse/templates/base.html:167 warehouse/templates/base.html:176 +#: warehouse/templates/base.html:186 #: warehouse/templates/includes/session-notifications.html:19 #: warehouse/templates/manage/account.html:789 #: warehouse/templates/manage/documentation.html:27 @@ -538,156 +538,156 @@ msgstr "" msgid "Warning" msgstr "" -#: warehouse/templates/base.html:164 +#: warehouse/templates/base.html:169 msgid "You are using an unsupported browser, upgrade to a newer version." msgstr "" -#: warehouse/templates/base.html:173 +#: warehouse/templates/base.html:178 msgid "" "You are using TestPyPI – a separate instance of the Python Package Index " "that allows you to try distribution tools and processes without affecting" " the real index." msgstr "" -#: warehouse/templates/base.html:183 +#: warehouse/templates/base.html:188 msgid "" "Some features may not work without JavaScript. Please try enabling it if " "you encounter problems." msgstr "" -#: warehouse/templates/base.html:221 warehouse/templates/base.html:242 +#: warehouse/templates/base.html:226 warehouse/templates/base.html:247 #: warehouse/templates/error-base-with-search.html:20 #: warehouse/templates/index.html:55 msgid "Search PyPI" msgstr "" -#: warehouse/templates/base.html:222 warehouse/templates/base.html:243 +#: warehouse/templates/base.html:227 warehouse/templates/base.html:248 #: warehouse/templates/error-base-with-search.html:21 #: warehouse/templates/index.html:58 msgid "Search projects" msgstr "" -#: warehouse/templates/base.html:226 warehouse/templates/base.html:247 +#: warehouse/templates/base.html:231 warehouse/templates/base.html:252 #: warehouse/templates/error-base-with-search.html:24 #: warehouse/templates/index.html:62 msgid "Search" msgstr "" -#: warehouse/templates/base.html:266 +#: warehouse/templates/base.html:271 msgid "Help navigation" msgstr "" -#: warehouse/templates/base.html:268 +#: warehouse/templates/base.html:273 msgid "Installing packages" msgstr "" -#: warehouse/templates/base.html:269 +#: warehouse/templates/base.html:274 msgid "Uploading packages" msgstr "" -#: warehouse/templates/base.html:270 +#: warehouse/templates/base.html:275 msgid "User guide" msgstr "" -#: warehouse/templates/base.html:271 +#: warehouse/templates/base.html:276 msgid "FAQs" msgstr "" -#: warehouse/templates/base.html:277 warehouse/templates/pages/sitemap.html:37 +#: warehouse/templates/base.html:282 warehouse/templates/pages/sitemap.html:37 msgid "About PyPI" msgstr "" -#: warehouse/templates/base.html:278 +#: warehouse/templates/base.html:283 msgid "About PyPI navigation" msgstr "" -#: warehouse/templates/base.html:280 +#: warehouse/templates/base.html:285 msgid "PyPI on Twitter" msgstr "" -#: warehouse/templates/base.html:281 +#: warehouse/templates/base.html:286 msgid "Infrastructure dashboard" msgstr "" -#: warehouse/templates/base.html:282 +#: warehouse/templates/base.html:287 msgid "Package index name retention" msgstr "" -#: warehouse/templates/base.html:283 +#: warehouse/templates/base.html:288 msgid "Our sponsors" msgstr "" -#: warehouse/templates/base.html:289 +#: warehouse/templates/base.html:294 msgid "Contributing to PyPI" msgstr "" -#: warehouse/templates/base.html:290 +#: warehouse/templates/base.html:295 msgid "How to contribute navigation" msgstr "" -#: warehouse/templates/base.html:292 +#: warehouse/templates/base.html:297 msgid "Bugs and feedback" msgstr "" -#: warehouse/templates/base.html:293 +#: warehouse/templates/base.html:298 msgid "Contribute on GitHub" msgstr "" -#: warehouse/templates/base.html:294 +#: warehouse/templates/base.html:299 msgid "Translate PyPI" msgstr "" -#: warehouse/templates/base.html:295 +#: warehouse/templates/base.html:300 msgid "Development credits" msgstr "" -#: warehouse/templates/base.html:301 warehouse/templates/pages/sitemap.html:23 +#: warehouse/templates/base.html:306 warehouse/templates/pages/sitemap.html:23 msgid "Using PyPI" msgstr "" -#: warehouse/templates/base.html:302 +#: warehouse/templates/base.html:307 msgid "Using PyPI navigation" msgstr "" -#: warehouse/templates/base.html:304 +#: warehouse/templates/base.html:309 msgid "Code of conduct" msgstr "" -#: warehouse/templates/base.html:305 +#: warehouse/templates/base.html:310 msgid "Report security issue" msgstr "" -#: warehouse/templates/base.html:306 +#: warehouse/templates/base.html:311 msgid "Privacy policy" msgstr "" -#: warehouse/templates/base.html:307 warehouse/templates/pages/sitemap.html:43 +#: warehouse/templates/base.html:312 warehouse/templates/pages/sitemap.html:43 msgid "Terms of use" msgstr "" -#: warehouse/templates/base.html:317 +#: warehouse/templates/base.html:322 msgid "Status: " msgstr "" -#: warehouse/templates/base.html:318 +#: warehouse/templates/base.html:323 msgid "all systems operational" msgstr "" -#: warehouse/templates/base.html:322 +#: warehouse/templates/base.html:327 msgid "" "Developed and maintained by the Python community, for the Python " "community." msgstr "" -#: warehouse/templates/base.html:324 +#: warehouse/templates/base.html:329 msgid "Donate today!" msgstr "" -#: warehouse/templates/base.html:327 warehouse/templates/pages/sitemap.html:16 +#: warehouse/templates/base.html:332 warehouse/templates/pages/sitemap.html:16 msgid "Site map" msgstr "" -#: warehouse/templates/base.html:333 +#: warehouse/templates/base.html:338 msgid "Switch to desktop version" msgstr "" @@ -2085,7 +2085,7 @@ msgstr "" #: warehouse/templates/manage/account.html:568 #: warehouse/templates/manage/release.html:58 -#: warehouse/templates/packaging/detail.html:350 +#: warehouse/templates/packaging/detail.html:349 msgid "None" msgstr "" @@ -2637,7 +2637,7 @@ msgstr "" #: warehouse/templates/manage/projects.html:104 #: warehouse/templates/manage/releases.html:94 -#: warehouse/templates/packaging/detail.html:360 +#: warehouse/templates/packaging/detail.html:359 msgid "View" msgstr "" @@ -2680,8 +2680,8 @@ msgstr "" #: warehouse/templates/manage/release.html:37 #: warehouse/templates/manage/release.html:48 -#: warehouse/templates/packaging/detail.html:324 -#: warehouse/templates/packaging/detail.html:335 +#: warehouse/templates/packaging/detail.html:323 +#: warehouse/templates/packaging/detail.html:334 msgid "Filename, size" msgstr "" @@ -2692,15 +2692,15 @@ msgstr "" #: warehouse/templates/manage/release.html:39 #: warehouse/templates/manage/release.html:57 -#: warehouse/templates/packaging/detail.html:326 -#: warehouse/templates/packaging/detail.html:346 +#: warehouse/templates/packaging/detail.html:325 +#: warehouse/templates/packaging/detail.html:345 msgid "Python version" msgstr "" #: warehouse/templates/manage/release.html:40 #: warehouse/templates/manage/release.html:61 -#: warehouse/templates/packaging/detail.html:327 -#: warehouse/templates/packaging/detail.html:354 +#: warehouse/templates/packaging/detail.html:326 +#: warehouse/templates/packaging/detail.html:353 msgid "Upload date" msgstr "" @@ -3534,78 +3534,78 @@ msgid "Navigation" msgstr "" #: warehouse/templates/packaging/detail.html:174 -#: warehouse/templates/packaging/detail.html:206 +#: warehouse/templates/packaging/detail.html:205 #, python-format msgid "Navigation for %(project)s" msgstr "" #: warehouse/templates/packaging/detail.html:177 -#: warehouse/templates/packaging/detail.html:209 +#: warehouse/templates/packaging/detail.html:208 msgid "Project description. Focus will be moved to the description." msgstr "" #: warehouse/templates/packaging/detail.html:179 -#: warehouse/templates/packaging/detail.html:211 -#: warehouse/templates/packaging/detail.html:239 +#: warehouse/templates/packaging/detail.html:210 +#: warehouse/templates/packaging/detail.html:238 msgid "Project description" msgstr "" #: warehouse/templates/packaging/detail.html:183 -#: warehouse/templates/packaging/detail.html:221 +#: warehouse/templates/packaging/detail.html:220 msgid "Release history. Focus will be moved to the history panel." msgstr "" #: warehouse/templates/packaging/detail.html:185 -#: warehouse/templates/packaging/detail.html:223 -#: warehouse/templates/packaging/detail.html:261 +#: warehouse/templates/packaging/detail.html:222 +#: warehouse/templates/packaging/detail.html:260 msgid "Release history" msgstr "" #: warehouse/templates/packaging/detail.html:190 -#: warehouse/templates/packaging/detail.html:228 +#: warehouse/templates/packaging/detail.html:227 msgid "Download files. Focus will be moved to the project files." msgstr "" #: warehouse/templates/packaging/detail.html:192 -#: warehouse/templates/packaging/detail.html:230 -#: warehouse/templates/packaging/detail.html:317 +#: warehouse/templates/packaging/detail.html:229 +#: warehouse/templates/packaging/detail.html:316 msgid "Download files" msgstr "" -#: warehouse/templates/packaging/detail.html:215 +#: warehouse/templates/packaging/detail.html:214 msgid "Project details. Focus will be moved to the project details." msgstr "" -#: warehouse/templates/packaging/detail.html:217 -#: warehouse/templates/packaging/detail.html:253 +#: warehouse/templates/packaging/detail.html:216 +#: warehouse/templates/packaging/detail.html:252 msgid "Project details" msgstr "" -#: warehouse/templates/packaging/detail.html:246 +#: warehouse/templates/packaging/detail.html:245 msgid "The author of this package has not provided a project description" msgstr "" -#: warehouse/templates/packaging/detail.html:263 +#: warehouse/templates/packaging/detail.html:262 msgid "Release notifications" msgstr "" -#: warehouse/templates/packaging/detail.html:264 +#: warehouse/templates/packaging/detail.html:263 msgid "RSS feed" msgstr "" -#: warehouse/templates/packaging/detail.html:276 +#: warehouse/templates/packaging/detail.html:275 msgid "This version" msgstr "" -#: warehouse/templates/packaging/detail.html:296 +#: warehouse/templates/packaging/detail.html:295 msgid "pre-release" msgstr "" -#: warehouse/templates/packaging/detail.html:301 +#: warehouse/templates/packaging/detail.html:300 msgid "yanked" msgstr "" -#: warehouse/templates/packaging/detail.html:318 +#: warehouse/templates/packaging/detail.html:317 #, python-format msgid "" "Download the file for your platform. If you're not sure which to choose, " @@ -3613,18 +3613,18 @@ msgid "" "target=\"_blank\" rel=\"noopener\">installing packages." msgstr "" -#: warehouse/templates/packaging/detail.html:321 +#: warehouse/templates/packaging/detail.html:320 #, python-format msgid "Files for %(project_name)s, version %(version)s" msgstr "" -#: warehouse/templates/packaging/detail.html:325 -#: warehouse/templates/packaging/detail.html:342 +#: warehouse/templates/packaging/detail.html:324 +#: warehouse/templates/packaging/detail.html:341 msgid "File type" msgstr "" -#: warehouse/templates/packaging/detail.html:328 -#: warehouse/templates/packaging/detail.html:358 +#: warehouse/templates/packaging/detail.html:327 +#: warehouse/templates/packaging/detail.html:357 msgid "Hashes" msgstr "" diff --git a/warehouse/static/sass/blocks/_sidebar-section.scss b/warehouse/static/sass/blocks/_sidebar-section.scss index a3aa35aa878c..f0e839a216af 100644 --- a/warehouse/static/sass/blocks/_sidebar-section.scss +++ b/warehouse/static/sass/blocks/_sidebar-section.scss @@ -36,7 +36,16 @@ .sidebar-section__user-gravatar { @include link-without-underline; @include link-focus-state($primary-color); + } + + .ethical-content { + text-align-last: center; + text-align: left; + img { + width: 60%; + display: inline-block; + } } &:last-of-type { diff --git a/warehouse/templates/base.html b/warehouse/templates/base.html index abeedd8f66ef..e5684938af1b 100644 --- a/warehouse/templates/base.html +++ b/warehouse/templates/base.html @@ -141,6 +141,11 @@ {% endif -%} +
diff --git a/warehouse/templates/includes/sidebar-sponsor-logo.html b/warehouse/templates/includes/sidebar-sponsor-logo.html index 6c212b3d3616..520c33d4d270 100644 --- a/warehouse/templates/includes/sidebar-sponsor-logo.html +++ b/warehouse/templates/includes/sidebar-sponsor-logo.html @@ -12,13 +12,4 @@ # limitations under the License. -#} -{% set sponsor = request.sponsors | selectattr("sidebar", "equalto", true) | list | random %} - -