Proyectos de Subversion LeadersLinked - Services

Rev

Rev 283 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

<?php
declare(strict_types = 1);
namespace LeadersLinked\Form\Users;

use Laminas\InputFilter\InputFilter;
use LeadersLinked\Mapper\UserMapper;

class AddFilter extends InputFilter
{

    public function __construct($adapter)
    {
        $this->add([
            'name' => 'first_name',
            'required' => true,
            'filters' => [
                [
                    'name' => \Laminas\Filter\StripTags::class
                ],
                [
                    'name' => \Laminas\Filter\StringTrim::class
                ]
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 64
                    ]
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class
                ]
            ]
        ]);
        $this->add([
            'name' => 'last_name',
            'required' => true,
            'filters' => [
                [
                    'name' => \Laminas\Filter\StripTags::class
                ],
                [
                    'name' => \Laminas\Filter\StringTrim::class
                ]
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 64
                    ]
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class
                ]
            ]
        ]);

        $this->add([
            'name' => 'email',
            'required' => true,
            'filters' => [
                [
                    'name' => \Laminas\Filter\StripTags::class
                ],
                [
                    'name' => \Laminas\Filter\StringTrim::class
                ]
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 250
                    ]
                ],
                [
                    'name' => \Laminas\Validator\NotEmpty::class
                ],
                [
                    'name' => \Laminas\Validator\EmailAddress::class
                ],
                [
                    'name' => \Laminas\Validator\Db\NoRecordExists::class,
                    'options' => [
                        'table' => UserMapper::_TABLE,
                        'field' => 'email',
                        'adapter' => $adapter
                    ]
                ]
            ]
        ]);

        $this->add([
            'name' => 'password',
            'required' => true,
            'filters' => [
                [
                    'name' => \Laminas\Filter\StripTags::class
                ],
                [
                    'name' => \Laminas\Filter\StringTrim::class
                ]
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class
                ],
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'min' => 6,
                        'max' => 25
                    ]
                ],
                [
                    'name' => \LeadersLinked\Validator\PasswordStrengthCheck::class
                ]
            ]
        ]);

        $this->add([
            'name' => 'confirmation',
            'required' => true,
            'filters' => [
                [
                    'name' => \Laminas\Filter\StripTags::class
                ],
                [
                    'name' => \Laminas\Filter\StringTrim::class
                ]
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class
                ],
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'min' => 6,
                        'max' => 25
                    ]
                ],
                [
                    'name' => \Laminas\Validator\Identical::class,
                    'options' => [
                        'strict' => 'false',
                        'token' => 'password'
                    ]
                ]
            ]
        ]);
    }
}