Skip to content

Commit

Permalink
[fc] Repository: Products.PortalTransforms
Browse files Browse the repository at this point in the history
Branch: refs/heads/master
Date: 2021-03-26T17:45:12+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: plone/Products.PortalTransforms@4dd5da3

Split method cleaner_options off from scrub_html in safe_html transform.

This makes it easier to monkey patch or subclass.

Files changed:
A news/44.bugfix
M Products/PortalTransforms/transforms/safe_html.py
Repository: Products.PortalTransforms

Branch: refs/heads/master
Date: 2021-06-08T14:05:29+02:00
Author: Maurits van Rees (mauritsvanrees) <m.van.rees@zestsoftware.nl>
Commit: plone/Products.PortalTransforms@9eed5b1

Merge pull request #44 from plone/maurits/safe-html-transform-split

Split method cleaner_options off from scrub_html in safe_html transform.

Files changed:
A news/44.bugfix
M Products/PortalTransforms/transforms/safe_html.py
  • Loading branch information
mauritsvanrees committed Jun 8, 2021
1 parent b3f5ebd commit 1a36350
Showing 1 changed file with 29 additions and 8 deletions.
37 changes: 29 additions & 8 deletions last_commit.txt
@@ -1,15 +1,36 @@
Repository: plone.restapi
Repository: Products.PortalTransforms


Branch: refs/heads/7.x.x
Date: 2021-05-26T20:50:23+02:00
Author: Timo Stollenwerk (tisto) <stollenwerk@kitconcept.com>
Commit: https://github.com/plone/plone.restapi/commit/506a263abd178358be574b84c3663442d1e44ea4
Branch: refs/heads/master
Date: 2021-03-26T17:45:12+01:00
Author: Maurits van Rees (mauritsvanrees) <maurits@vanrees.org>
Commit: https://github.com/plone/Products.PortalTransforms/commit/4dd5da31d64e4f58011b87432e8b9fa5de6c0c17

Fix changelog
Split method cleaner_options off from scrub_html in safe_html transform.

This makes it easier to monkey patch or subclass.

Files changed:
A news/44.bugfix
M Products/PortalTransforms/transforms/safe_html.py

b'diff --git a/Products/PortalTransforms/transforms/safe_html.py b/Products/PortalTransforms/transforms/safe_html.py\nindex a1adc12..3152bfa 100644\n--- a/Products/PortalTransforms/transforms/safe_html.py\n+++ b/Products/PortalTransforms/transforms/safe_html.py\n@@ -2396,6 +2396,36 @@ def convert(self, orig, data, **kwargs):\n data.setData(safe_html)\n return data\n \n+ def cleaner_options(self):\n+ # Create dictionary of options that we pass to the html cleaner.\n+ registry = getUtility(IRegistry)\n+ self.settings = registry.forInterface(IFilterSchema, prefix="plone")\n+\n+ valid_tags = self.settings.valid_tags\n+ nasty_tags = [t for t in self.settings.nasty_tags if t not in valid_tags]\n+ if six.PY2:\n+ safe_attrs = [attr.decode() for attr in html.defs.safe_attrs]\n+ else:\n+ safe_attrs = [i for i in html.defs.safe_attrs]\n+ safe_attrs.extend(self.settings.custom_attributes)\n+ remove_script = \'script\' in nasty_tags and 1 or 0\n+ options = dict(\n+ kill_tags=nasty_tags,\n+ remove_tags=[],\n+ allow_tags=valid_tags,\n+ page_structure=False,\n+ safe_attrs_only=True,\n+ safe_attrs=safe_attrs,\n+ embedded=False,\n+ remove_unknown_tags=False,\n+ meta=False,\n+ javascript=remove_script,\n+ scripts=remove_script,\n+ forms=False,\n+ style=False,\n+ )\n+ return options\n+\n def scrub_html(self, orig):\n # append html tag to create a dummy parent for the tree\n html_parser = html.HTMLParser(encoding=\'utf-8\')\n@@ -2419,33 +2449,8 @@ def strip_outer(s):\n if hasScript(value):\n del elem.attrib[attrib]\n \n- registry = getUtility(IRegistry)\n- self.settings = registry.forInterface(\n- IFilterSchema, prefix="plone")\n-\n- valid_tags = self.settings.valid_tags\n- nasty_tags = [\n- t for t in self.settings.nasty_tags if t not in valid_tags]\n- if six.PY2:\n- safe_attrs = [attr.decode() for attr in html.defs.safe_attrs]\n- else:\n- safe_attrs = [i for i in html.defs.safe_attrs]\n- safe_attrs.extend(\n- self.settings.custom_attributes)\n- remove_script = \'script\' in nasty_tags and 1 or 0\n- cleaner = Cleaner(kill_tags=nasty_tags,\n- remove_tags=[],\n- allow_tags=valid_tags,\n- page_structure=False,\n- safe_attrs_only=True,\n- safe_attrs=safe_attrs,\n- embedded=False,\n- remove_unknown_tags=False,\n- meta=False,\n- javascript=remove_script,\n- scripts=remove_script,\n- forms=False,\n- style=False)\n+ options = self.cleaner_options()\n+ cleaner = Cleaner(**options)\n try:\n cleaner(tree)\n except AssertionError:\ndiff --git a/news/44.bugfix b/news/44.bugfix\nnew file mode 100644\nindex 0000000..9612f93\n--- /dev/null\n+++ b/news/44.bugfix\n@@ -0,0 +1,3 @@\n+Split method cleaner_options off from scrub_html in safe_html transform.\n+This makes it easier to monkey patch or subclass.\n+[maurits]\n'

Repository: Products.PortalTransforms


Branch: refs/heads/master
Date: 2021-06-08T14:05:29+02:00
Author: Maurits van Rees (mauritsvanrees) <m.van.rees@zestsoftware.nl>
Commit: https://github.com/plone/Products.PortalTransforms/commit/9eed5b1b43450777fb4f7dc76abf4e99971093bc

Merge pull request #44 from plone/maurits/safe-html-transform-split

Split method cleaner_options off from scrub_html in safe_html transform.

Files changed:
M CHANGES.rst
A news/44.bugfix
M Products/PortalTransforms/transforms/safe_html.py

b'diff --git a/CHANGES.rst b/CHANGES.rst\nindex a8d0c8558..251a17cb2 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -8,19 +8,14 @@ Changelog\n \n .. towncrier release notes start\n \n-7.3.7 (2021-05-26)\n-------------------\n-\n-No significant changes.\n \n-\n-7.3.6 (2021-05-26)\n+7.3.7 (2021-05-26)\n ------------------\n \n - Re-release 7.3.6 since it was a brown bag release.\n \n \n-7.3.6 (2021-05-26)\n+7.3.6 (unreleased)\n ------------------\n \n Bug fixes:\n'
b'diff --git a/Products/PortalTransforms/transforms/safe_html.py b/Products/PortalTransforms/transforms/safe_html.py\nindex a1adc12..3152bfa 100644\n--- a/Products/PortalTransforms/transforms/safe_html.py\n+++ b/Products/PortalTransforms/transforms/safe_html.py\n@@ -2396,6 +2396,36 @@ def convert(self, orig, data, **kwargs):\n data.setData(safe_html)\n return data\n \n+ def cleaner_options(self):\n+ # Create dictionary of options that we pass to the html cleaner.\n+ registry = getUtility(IRegistry)\n+ self.settings = registry.forInterface(IFilterSchema, prefix="plone")\n+\n+ valid_tags = self.settings.valid_tags\n+ nasty_tags = [t for t in self.settings.nasty_tags if t not in valid_tags]\n+ if six.PY2:\n+ safe_attrs = [attr.decode() for attr in html.defs.safe_attrs]\n+ else:\n+ safe_attrs = [i for i in html.defs.safe_attrs]\n+ safe_attrs.extend(self.settings.custom_attributes)\n+ remove_script = \'script\' in nasty_tags and 1 or 0\n+ options = dict(\n+ kill_tags=nasty_tags,\n+ remove_tags=[],\n+ allow_tags=valid_tags,\n+ page_structure=False,\n+ safe_attrs_only=True,\n+ safe_attrs=safe_attrs,\n+ embedded=False,\n+ remove_unknown_tags=False,\n+ meta=False,\n+ javascript=remove_script,\n+ scripts=remove_script,\n+ forms=False,\n+ style=False,\n+ )\n+ return options\n+\n def scrub_html(self, orig):\n # append html tag to create a dummy parent for the tree\n html_parser = html.HTMLParser(encoding=\'utf-8\')\n@@ -2419,33 +2449,8 @@ def strip_outer(s):\n if hasScript(value):\n del elem.attrib[attrib]\n \n- registry = getUtility(IRegistry)\n- self.settings = registry.forInterface(\n- IFilterSchema, prefix="plone")\n-\n- valid_tags = self.settings.valid_tags\n- nasty_tags = [\n- t for t in self.settings.nasty_tags if t not in valid_tags]\n- if six.PY2:\n- safe_attrs = [attr.decode() for attr in html.defs.safe_attrs]\n- else:\n- safe_attrs = [i for i in html.defs.safe_attrs]\n- safe_attrs.extend(\n- self.settings.custom_attributes)\n- remove_script = \'script\' in nasty_tags and 1 or 0\n- cleaner = Cleaner(kill_tags=nasty_tags,\n- remove_tags=[],\n- allow_tags=valid_tags,\n- page_structure=False,\n- safe_attrs_only=True,\n- safe_attrs=safe_attrs,\n- embedded=False,\n- remove_unknown_tags=False,\n- meta=False,\n- javascript=remove_script,\n- scripts=remove_script,\n- forms=False,\n- style=False)\n+ options = self.cleaner_options()\n+ cleaner = Cleaner(**options)\n try:\n cleaner(tree)\n except AssertionError:\ndiff --git a/news/44.bugfix b/news/44.bugfix\nnew file mode 100644\nindex 0000000..9612f93\n--- /dev/null\n+++ b/news/44.bugfix\n@@ -0,0 +1,3 @@\n+Split method cleaner_options off from scrub_html in safe_html transform.\n+This makes it easier to monkey patch or subclass.\n+[maurits]\n'

0 comments on commit 1a36350

Please sign in to comment.