Current path: home/webdevt/cryptoimpot.fr/module/User/src/InputFilter/
?? Go up: /home/webdevt/cryptoimpot.fr/module/User/src
<?php
namespace User\InputFilter;
use CirclicalUser\Form\Validator\RecaptchaValidator;
use Doctrine\Common\Persistence\ObjectRepository;
use DoctrineModule\Validator\NoObjectExists;
use Laminas\Filter\StringToLower;
use Laminas\Filter\StringTrim;
use Laminas\InputFilter\InputFilter;
use Laminas\Form\Element;
use Laminas\Captcha;
use CirclicalUser\Form\Filter\ArrayBlock;
use HTMLPurifier;
use Laminas\Validator\EmailAddress;
use Laminas\Validator\StringLength;
class PasswordResetFormInputFilter extends InputFilter
{
const EMAIL = 'email';
const RECAPTCHA = 'g-recaptcha-response';
protected $userRepository;
protected $has_captcha;
public function __construct( ObjectRepository $userRepository, $has_captcha )
{
$this->userRepository = $userRepository;
$this->has_captcha = $has_captcha;
}
public function init()
{
if( $this->has_captcha )
{
$this->add([
'name' => self::RECAPTCHA,
'required' => true,
'messages' => [_("Please complete the anti-robot check!")],
'validators' => [
['name' => \CirclicalRecaptcha\Form\Validator\RecaptchaValidator::class,],
],
]);
$this->get( self::RECAPTCHA )->setBreakOnFailure( true );
}
$this->add([
'name' => 'email',
'required' => true,
'filters' => [
['name' => ArrayBlock::class],
['name' => StringTrim::class],
['name' => HTMLPurifier::class],
['name' => StringToLower::class],
],
'validators' => [
[
'name' => EmailAddress::class,
'options' => [
'useMxCheck' => true,
'useDeepMxCheck' => true,
'useDomainCheck' => true,
'message' => _( "That email address has a typo in it, or its domain can't be checked" ),
],
],
[
'name' => NoObjectExists::class,
'options' => [
'fields' => ['email'],
'messages' => [
NoObjectExists::ERROR_OBJECT_FOUND => _( "That email is already taken, please log in instead" ),
],
'object_repository' => $this->userRepository,
],
],
],
]);
$this->add([
'name' => 'email_confirm',
'required' => true,
'filters' => [
['name' => ArrayBlock::class],
['name' => StringTrim::class],
['name' => HTMLPurifier::class],
['name' => StringToLower::class],
],
'validators' => [
[
'name' => 'identical',
'options' => [
'message' => _( "Your email and confirmation email are different" ),
'token' => self::EMAIL,
],
],
],
]);
}
}