diff --git a/src/Twig/TwigExtension.php b/src/Twig/TwigExtension.php index 2476574f..ee501071 100644 --- a/src/Twig/TwigExtension.php +++ b/src/Twig/TwigExtension.php @@ -72,6 +72,7 @@ public function getFilters() new TwigFilter('strip_group_type', [$this, 'stripGroupType']), new TwigFilter('locale_to_bcp47', [$this, 'localeToBcp47']), new TwigFilter('bcp47_to_locale', [$this, 'bcp47ToLocale']), + new TwigFilter('obfuscate', [$this, 'obfuscate'], ['is_safe' => ['html']]), ]; } @@ -291,4 +292,10 @@ public function bcp47ToLocale(string $locale): string { return str_replace('-', '_', $locale); } + + public function obfuscate(string $text): string + { + // Obfuscate string by replacing all characters with their HTML entity equivalents + return mb_encode_numericentity($text, [0x000000, 0x10ffff, 0, 0xffffff], 'UTF-8'); + } } diff --git a/templates/components/evangelists.html.twig b/templates/components/evangelists.html.twig index 9143467f..4eaf17ed 100644 --- a/templates/components/evangelists.html.twig +++ b/templates/components/evangelists.html.twig @@ -29,7 +29,7 @@
{{ 'components.people.tel'|trans({'number': evangelist.phone}, 'w3c_website_templates_bundle')|raw }}
{% endif %} {% if evangelist.email %} -{{ 'components.people.email'|trans({'email': evangelist.email}, 'w3c_website_templates_bundle')|raw }}
+{{ 'components.people.email'|trans({'email': evangelist.email|obfuscate}, 'w3c_website_templates_bundle')|raw }}
{% endif %} diff --git a/templates/components/listings/people/user.html.twig b/templates/components/listings/people/user.html.twig index bd08ebbc..8bc4934c 100644 --- a/templates/components/listings/people/user.html.twig +++ b/templates/components/listings/people/user.html.twig @@ -20,12 +20,12 @@