vendor/shopware/storefront/Framework/Captcha/HoneypotCaptcha.php line 50

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Storefront\Framework\Captcha;
  3. use Shopware\Core\Framework\Feature;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\Validator\Constraints\Blank;
  6. use Symfony\Component\Validator\Mapping\ClassMetadata;
  7. use Symfony\Component\Validator\Validator\ValidatorInterface;
  8. class HoneypotCaptcha extends AbstractCaptcha
  9. {
  10.     public const CAPTCHA_NAME 'honeypot';
  11.     public const CAPTCHA_REQUEST_PARAMETER 'shopware_surname_confirm';
  12.     protected ?string $honeypotValue;
  13.     private ValidatorInterface $validator;
  14.     /**
  15.      * @internal
  16.      */
  17.     public function __construct(ValidatorInterface $validator)
  18.     {
  19.         $this->validator $validator;
  20.     }
  21.     /**
  22.      * Default method for determining constraints when using the Symfony validator.
  23.      */
  24.     public static function loadValidatorMetadata(ClassMetadata $metadata): void
  25.     {
  26.         $metadata->addPropertyConstraint('honeypotValue', new Blank());
  27.     }
  28.     /**
  29.      * {@inheritdoc}
  30.      */
  31.     public function isValid(Request $request/* , array $captchaConfig */): bool
  32.     {
  33.         if (\func_num_args() < || !\is_array(func_get_arg(1))) {
  34.             Feature::triggerDeprecationOrThrow(
  35.                 'v6.5.0.0',
  36.                 'Method `isValid()` in `HoneypotCaptcha` expects passing the `$captchaConfig` as array as the second parameter in v6.5.0.0.'
  37.             );
  38.         }
  39.         $this->honeypotValue $request->get(self::CAPTCHA_REQUEST_PARAMETER'');
  40.         return \count($this->validator->validate($this)) < 1;
  41.     }
  42.     /**
  43.      * {@inheritdoc}
  44.      */
  45.     public function getName(): string
  46.     {
  47.         return self::CAPTCHA_NAME;
  48.     }
  49. }