From ce0cfe445636454ce8661bc31378b43a0ea94f8d Mon Sep 17 00:00:00 2001 From: Diatrex Date: Fri, 6 Nov 2020 10:56:52 +0300 Subject: [PATCH] make captcha optional --- .../addons/anomaly/users-module/register.twig | 22 ++-- .../Register2/Register2FormBuilder.php | 92 --------------- .../Profile/Register2/Register2FormFields.php | 109 ++++++++++++++++++ 3 files changed, 123 insertions(+), 100 deletions(-) create mode 100644 addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormFields.php diff --git a/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/register.twig b/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/register.twig index eb1c5cbf4..6d8a34eb4 100644 --- a/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/register.twig +++ b/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/register.twig @@ -5,6 +5,8 @@ {% endblock %} {% block content %} + {% set enableCaptcha = setting_value('visiosoft.module.profile::google_captcha_site_key') and setting_value('visiosoft.module.profile::google_captcha_secret_key') %} +
@@ -20,7 +22,9 @@ 'url':form.options.url })|raw }} - + {% if enableCaptcha %} + + {% endif %} {% include 'visiosoft.theme.base::addons/anomaly/users-module/partials/register-form' %} @@ -51,7 +55,7 @@ {{ form_close() }}
- {{ addBlock('register/corporate-register')|raw }} + {{ addBlock('register/corporate-register', {'enableCaptcha': enableCaptcha})|raw }}
@@ -78,12 +82,14 @@
- {% set reCAPTCHASiteKey = setting_value('visiosoft.module.profile::google_captcha_site_key') %} - - {{ asset_add('scripts.js', asset_download('https://www.google.com/recaptcha/api.js?render=' ~ reCAPTCHASiteKey, 60*60*24)) }} + {% if enableCaptcha %} + {% set reCAPTCHASiteKey = setting_value('visiosoft.module.profile::google_captcha_site_key') %} + + {{ asset_add('scripts.js', asset_download('https://www.google.com/recaptcha/api.js?render=' ~ reCAPTCHASiteKey, 60*60*24)) }} + {{ asset_add("scripts.js", "visiosoft.module.profile::assets/js/captcha.js") }} + {% endif %} {{ asset_add("scripts.js", "visiosoft.theme.base::js/register.js") }} - {{ asset_add("scripts.js", "visiosoft.module.profile::assets/js/captcha.js") }} {% endblock %} diff --git a/addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormBuilder.php b/addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormBuilder.php index 89a9cbc55..29a291005 100644 --- a/addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormBuilder.php +++ b/addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormBuilder.php @@ -3,8 +3,6 @@ use Anomaly\Streams\Platform\Ui\Form\FormBuilder; use Visiosoft\ProfileModule\Profile\Register2\Command\SetOptions; use Anomaly\UsersModule\User\UserModel; -use Visiosoft\ProfileModule\Profile\Validation\ValidateRegister; -use Visiosoft\ProfileModule\Rules\ReCaptchaRule; /** * Class RegisterFormBuilder @@ -32,96 +30,6 @@ class Register2FormBuilder extends FormBuilder */ protected $model = UserModel::class; - /** - * The form fields. - * - * @var array - */ - protected $fields = [ - 'recaptcha_token' => [ - 'required' => true, - 'type' => 'anomaly.field_type.text', - 'config' => [ - "max" => 0, - ], - 'rules' => [ - 'valid_recaptcha' - ], - 'validators' => [ - 'valid_recaptcha' => [ - 'message' => false, - 'handler' => ReCaptchaRule::class - ] - ] - ], - 'username' => [ - 'required' => true, - ], - 'first_name' => [ - 'instructions' => false, - 'required' => true, - ], - 'last_name' => [ - 'instructions' => false, - 'required' => true, - ], - 'phone' => [ - 'type' => 'anomaly.field_type.text', - 'required' => true, - 'rules' => [ - 'valid_register', - ], - 'validators' => [ - 'valid_register' => [ - 'message' => false, - 'handler' => ValidateRegister::class, - ], - ], - ], - 'email' => [ - 'instructions' => false, - ], - 'password' => [ - 'instructions' => false, - ], - "accept_terms" => [ - "type" => "anomaly.field_type.boolean", - "required" => true, - "config" => [ - "default_value" => false, - "mode" => "checkbox", - "label" => 'visiosoft.module.profile::field.accept_terms_label', - ] - ], - "accept_protection_law" => [ - "type" => "anomaly.field_type.boolean", - "required" => true, - "config" => [ - "default_value" => false, - "mode" => "checkbox", - "label" => 'visiosoft.module.profile::field.accept_protection_law_label', - ] - ], - "accept_privacy_terms" => [ - "type" => "anomaly.field_type.boolean", - "required" => true, - "config" => [ - "default_value" => false, - "mode" => "checkbox", - "label" => 'visiosoft.module.profile::field.accept_privacy_terms_label', - ] - ], - "receive_sms_emails" => [ - "type" => "anomaly.field_type.boolean", - "required" => true, - "config" => [ - "default_value" => false, - "mode" => "checkbox", - "label" => 'visiosoft.module.profile::field.receive_sms_emails_label', - ] - ], - ]; - /** * The form actions. * diff --git a/addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormFields.php b/addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormFields.php new file mode 100644 index 000000000..7e8d3ed54 --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Profile/Register2/Register2FormFields.php @@ -0,0 +1,109 @@ + [ + 'required' => true, + 'type' => 'anomaly.field_type.text', + 'config' => [ + "max" => 0, + ], + 'rules' => [ + 'valid_recaptcha' + ], + 'validators' => [ + 'valid_recaptcha' => [ + 'message' => false, + 'handler' => ReCaptchaRule::class + ] + ] + ], + ]; + } + + $builder->setFields( + array_merge( + $register, + [ + 'username' => [ + 'required' => true, + ], + 'first_name' => [ + 'instructions' => false, + 'required' => true, + ], + 'last_name' => [ + 'instructions' => false, + 'required' => true, + ], + 'phone' => [ + 'type' => 'anomaly.field_type.text', + 'required' => true, + 'rules' => [ + 'valid_register', + ], + 'validators' => [ + 'valid_register' => [ + 'message' => false, + 'handler' => ValidateRegister::class, + ], + ], + ], + 'email' => [ + 'instructions' => false, + ], + 'password' => [ + 'instructions' => false, + ], + "accept_terms" => [ + "type" => "anomaly.field_type.boolean", + "required" => true, + "config" => [ + "default_value" => false, + "mode" => "checkbox", + "label" => 'visiosoft.module.profile::field.accept_terms_label', + ] + ], + "accept_protection_law" => [ + "type" => "anomaly.field_type.boolean", + "required" => true, + "config" => [ + "default_value" => false, + "mode" => "checkbox", + "label" => 'visiosoft.module.profile::field.accept_protection_law_label', + ] + ], + "accept_privacy_terms" => [ + "type" => "anomaly.field_type.boolean", + "required" => true, + "config" => [ + "default_value" => false, + "mode" => "checkbox", + "label" => 'visiosoft.module.profile::field.accept_privacy_terms_label', + ] + ], + "receive_sms_emails" => [ + "type" => "anomaly.field_type.boolean", + "required" => true, + "config" => [ + "default_value" => false, + "mode" => "checkbox", + "label" => 'visiosoft.module.profile::field.receive_sms_emails_label', + ] + ], + ] + ) + ); + } +}