PasswordsValidator.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\Validators;
  3. use ThurData\Servers\KerioEmail\Core\UI\Widget\Forms\Validators\BaseValidator;
  4. use ThurData\Servers\KerioEmail\Core\UI\Widget\Forms\Validators\boolen;
  5. /**
  6. *
  7. * Created by PhpStorm.
  8. * User: Tomasz Bielecki ( tomasz.bi@thurdata.com )
  9. * Date: 10.10.19
  10. * Time: 11:20
  11. * Class PasswordsValidator
  12. */
  13. class PasswordsValidator extends BaseValidator
  14. {
  15. /**
  16. * return true if data is valid, false if not,
  17. * add error messages to $errorsList
  18. *
  19. * @param $data mixed
  20. * @param $additionalData mixed
  21. * @return boolen
  22. */
  23. protected function validate($data, $additionalData = null)
  24. {
  25. if(strlen($data) < 8)
  26. {
  27. $this->addValidationError('passwordCharsLengthError');
  28. return false;
  29. }
  30. if (!preg_match('#[0-9]+#', $data)) {
  31. $this->addValidationError('passwordNumberError');
  32. return false;
  33. }
  34. if (!preg_match('#[A-Z]+#', $data)) {
  35. $this->addValidationError('passwordUpperError');
  36. return false;
  37. }
  38. if (!preg_match('#[a-z]+#', $data)) {
  39. $this->addValidationError('passwordLowerError');
  40. return false;
  41. }
  42. if (!preg_match('#[^\w]+#', $data)) {
  43. $this->addValidationError('passwordSpecialError');
  44. return false;
  45. }
  46. return true;
  47. }
  48. }