PasswordsValidator.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace ModulesGarden\Servers\ZimbraEmail\App\Validators;
  3. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Validators\BaseValidator;
  4. use ModulesGarden\Servers\ZimbraEmail\Core\UI\Widget\Forms\Validators\boolen;
  5. /**
  6. *
  7. * Created by PhpStorm.
  8. * User: Tomasz Bielecki ( tomasz.bi@modulesgarden.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. $validateError = null;
  26. if(strlen($data) < 8)
  27. {
  28. $this->addValidationError('passwordCharsLengthError');
  29. $validateError = true;
  30. }
  31. if (!preg_match('#[0-9]+#', $data)) {
  32. $this->addValidationError('passwordNumberError');
  33. $validateError = true;
  34. }
  35. if (!preg_match('#[A-Z]+#', $data)) {
  36. $this->addValidationError('passwordUpperError');
  37. $validateError = true;
  38. }
  39. if (!preg_match('#[a-z]+#', $data)) {
  40. $this->addValidationError('passwordLowerError');
  41. $validateError = true;
  42. }
  43. if (!preg_match('#[^\w]+#', $data)) {
  44. $this->addValidationError('passwordSpecialError');
  45. $validateError = true;
  46. }
  47. if ($validateError == true) {
  48. return false;
  49. }
  50. return true;
  51. }
  52. }