X-Git-Url: https://git.rapsys.eu/packbundle/blobdiff_plain/f06acce2c1058d581657163417952723ff6d71cd..4cbd6aeb6b995561ff19c41f000d29c177ef4a58:/Form/CaptchaType.php diff --git a/Form/CaptchaType.php b/Form/CaptchaType.php index 83f3b1b..c3a5f69 100644 --- a/Form/CaptchaType.php +++ b/Form/CaptchaType.php @@ -21,6 +21,7 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormError; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; +use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Contracts\Translation\TranslatorInterface; /** @@ -32,8 +33,8 @@ class CaptchaType extends AbstractType { /** * Constructor * - * @param ?ImageUtil $image - * @param ?SluggerUtil $slugger + * @param ?ImageUtil $image The image instance + * @param ?SluggerUtil $slugger The slugger instance * @param ?TranslatorInterface $translator The translator instance */ public function __construct(protected ?ImageUtil $image = null, protected ?SluggerUtil $slugger = null, protected ?TranslatorInterface $translator = null) { @@ -46,7 +47,7 @@ class CaptchaType extends AbstractType { */ public function buildForm(FormBuilderInterface $builder, array $options): void { //With image, slugger and translator - if ($this->image !== null && $this->slugger !== null && $this->translator !== null) { + if (!empty($options['captcha']) && $this->image !== null && $this->slugger !== null && $this->translator !== null) { //Set captcha $captcha = $this->image->getCaptcha((new \DateTime('-1 year'))->getTimestamp()); @@ -61,6 +62,20 @@ class CaptchaType extends AbstractType { } } + /** + * {@inheritdoc} + */ + public function configureOptions(OptionsResolver $resolver): void { + //Call parent configure options + parent::configureOptions($resolver); + + //Set defaults + $resolver->setDefaults(['captcha' => false]); + + //Add extra captcha option + $resolver->setAllowedTypes('captcha', 'boolean'); + } + /** * Validate captcha *