‪TYPO3CMS  ‪main
PasswordPolicyValidator.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
21 
27 {
29  protected array ‪$validationErrors = [];
30 
31  public function ‪__construct(‪PasswordPolicyAction $action, string ‪$passwordPolicy = 'default')
32  {
33  $passwordPolicies = ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['passwordPolicies'] ?? [];
34  if (isset($passwordPolicies[‪$passwordPolicy])) {
35  $this->passwordPolicy = new ‪PasswordPolicy(
36  $passwordPolicies[‪$passwordPolicy]['validators'] ?? [],
37  $action,
38  );
39  }
40  }
41 
50  public function ‪isValidPassword(string $password, ?‪ContextData $contextData = null): bool
51  {
52  if (!$this->‪isEnabled()) {
53  return true;
54  }
55 
56  $isValid = true;
57  foreach ($this->passwordPolicy->getValidators() as ‪$validator) {
58  if (!‪$validator->validate($password, $contextData)) {
59  $this->validationErrors = array_merge($this->validationErrors, ‪$validator->getErrorMessages());
60  $isValid = false;
61  }
62  }
63 
64  return $isValid;
65  }
66 
67  public function ‪isEnabled(): bool
68  {
69  return $this->passwordPolicy !== null && $this->passwordPolicy->hasValidators();
70  }
71 
72  public function ‪hasRequirements(): bool
73  {
74  return !empty($this->‪getRequirements());
75  }
76 
77  public function ‪getRequirements(): array
78  {
79  return $this->passwordPolicy ? $this->passwordPolicy->getRequirements() : [];
80  }
81 
82  public function ‪getValidationErrors(): array
83  {
85  }
86 }
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicy
Definition: PasswordPolicy.php:29
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyValidator\$passwordPolicy
‪PasswordPolicy $passwordPolicy
Definition: PasswordPolicyValidator.php:28
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyValidator\getValidationErrors
‪getValidationErrors()
Definition: PasswordPolicyValidator.php:82
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyValidator\$validationErrors
‪array $validationErrors
Definition: PasswordPolicyValidator.php:29
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyValidator\getRequirements
‪getRequirements()
Definition: PasswordPolicyValidator.php:77
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyValidator\isEnabled
‪isEnabled()
Definition: PasswordPolicyValidator.php:67
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyValidator\isValidPassword
‪isValidPassword(string $password, ?ContextData $contextData=null)
Definition: PasswordPolicyValidator.php:50
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyValidator
Definition: PasswordPolicyValidator.php:27
‪$validator
‪if(isset($args['d'])) $validator
Definition: validateRstFiles.php:262
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyValidator\hasRequirements
‪hasRequirements()
Definition: PasswordPolicyValidator.php:72
‪TYPO3\CMS\Core\PasswordPolicy
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyAction
‪PasswordPolicyAction
Definition: PasswordPolicyAction.php:24
‪TYPO3\CMS\Core\PasswordPolicy\PasswordPolicyValidator\__construct
‪__construct(PasswordPolicyAction $action, string $passwordPolicy='default')
Definition: PasswordPolicyValidator.php:31
‪TYPO3\CMS\Core\PasswordPolicy\Validator\Dto\ContextData
Definition: ContextData.php:28