Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Validator;
6
 
7
use Laminas\Validator\AbstractValidator;
8
 
9
class PasswordStrengthCheck extends AbstractValidator
10
{
11
    const PATRON = '/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$^x%x*-]).{6,16}$/';
12
    const INVALID = 'Invalid';
13
 
14
    /**
15
     * Validation failure message template definitions
16
     *
17
     * @var array
18
     */
19
    protected $messageTemplates = [
20
        self::INVALID => 'Must contain at least one number, one letter, one uppercase letter and between 6 and 16 characters',
21
    ];
22
 
23
    /**
24
     * Returns true if and only if $value contains only hexadecimal digit characters
25
     *
26
     * @param  string $value
27
     * @return bool
28
     */
29
    public function isValid($value)
30
    {
31
        $matches = [];
32
        preg_match (self::PATRON, $value, $matches);
33
 
34
        if (empty($matches)) {
35
            $valid = false;
36
            $this->error(self::INVALID);
37
        } else {
38
            $valid = true;
39
            $this->setValue($matches[0]);
40
        }
41
 
42
        return $valid;
43
    }
44
}