From dfb6aec84aebae214be90014200355b334e767ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Kh=C3=BCny?= Date: Tue, 28 Nov 2023 11:32:45 +0100 Subject: [PATCH] Extend with recaptcha v3 --- DependencyInjection/Configuration.php | 1 + DependencyInjection/SuluFormExtension.php | 7 +++- Dynamic/Types/RecaptchaV3Type.php | 42 +++++++++++++++++++++++ Resources/config/type_recaptcha_v3.xml | 11 ++++++ 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 Dynamic/Types/RecaptchaV3Type.php create mode 100644 Resources/config/type_recaptcha_v3.xml diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 7275b011..05beca5d 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -145,6 +145,7 @@ public function getConfigTreeBuilder(): TreeBuilder ->arrayNode('dynamic_disabled_types') ->prototype('scalar')->end()->defaultValue([]) ->end() + ->scalarNode('recaptcha_version')->defaultValue(2)->end() ; return $treeBuilder; diff --git a/DependencyInjection/SuluFormExtension.php b/DependencyInjection/SuluFormExtension.php index e2be7e5f..535e6be9 100644 --- a/DependencyInjection/SuluFormExtension.php +++ b/DependencyInjection/SuluFormExtension.php @@ -151,6 +151,7 @@ public function load(array $configs, ContainerBuilder $container): void $container->setParameter('sulu_form.media_collection_strategy', $mediaCollectionStrategy); $container->setParameter('sulu_form.static_forms', $config['static_forms']); $container->setParameter('sulu_form.dynamic_disabled_types', $config['dynamic_disabled_types']); + $container->setParameter('sulu_form.recaptcha.version', $config['recaptcha_version']); // Default Media Collection Strategy $container->setAlias( @@ -223,7 +224,11 @@ public function load(array $configs, ContainerBuilder $container): void } if (\class_exists(\EWZ\Bundle\RecaptchaBundle\Form\Type\EWZRecaptchaType::class)) { - $loader->load('type_recaptcha.xml'); + if (3 === $container->getPArameter('sulu_form.recaptcha.version')) { + $loader->load('type_recaptcha_v3.xml'); + } else { + $loader->load('type_recaptcha.xml'); + } } if (SuluKernel::CONTEXT_WEBSITE === $container->getParameter('sulu.context')) { diff --git a/Dynamic/Types/RecaptchaV3Type.php b/Dynamic/Types/RecaptchaV3Type.php new file mode 100644 index 00000000..ac0a90cc --- /dev/null +++ b/Dynamic/Types/RecaptchaV3Type.php @@ -0,0 +1,42 @@ +add($field->getKey(), \EWZ\Bundle\RecaptchaBundle\Form\Type\EWZRecaptchaV3Type::class, $options); + } +} diff --git a/Resources/config/type_recaptcha_v3.xml b/Resources/config/type_recaptcha_v3.xml new file mode 100644 index 00000000..db059dab --- /dev/null +++ b/Resources/config/type_recaptcha_v3.xml @@ -0,0 +1,11 @@ + + + + + + + + +