function __invoke($value, $options = []) { $result = new ValidationResult(); $identity = $this->getAuthentication()->getIdentity(); if (!($identity && password_verify($value, $identity->getPassword()))) { $result->setErrorMessage('Неправильный пароль. Для изменения пароля необходимо ввести текущий пароль'); } else { $result->setValue($value); } return $result; }
function __invoke($value, $options = []) { $result = new ValidationResult(); $result->setValue($value); /** @var \EvaUser\Entity\User $user */ $user = $this->getEntityManager()->get('EvaUser\\Entity\\User')->findOneBy(['phoneNumber' => $value]); if ($user) { $result->setErrorMessage('Пользователь с таким телефоном уже существует'); } return $result; }
function __invoke($value, $options = []) { $result = new ValidationResult(); $result->setValue($value); /** @var \EvaUser\Entity\User $user */ $user = $this->getEntityManager()->get('EvaUser\\Entity\\User')->findOneBy(['emailAddress' => $value]); if ($user) { $result->setErrorMessage('Пользователь с такой электронной почтной уже существует'); } return $result; }
public function phone($value) { $result = new ValidationResult(); $p = $value; $p = preg_replace('/[\\(\\)\\-]/i', "", $p); $p = preg_replace('/([0-9\\+]{0,2})[\\-\\ ]{1}([0-9]{0,3})[\\-\\ ]([0-9]{0,3})[\\-\\ ]([0-9]{0,2})[\\-\\ ]([0-9]{0,2})/i', "\$1\$2\$3\$4\$5", $p); $p = preg_replace('/([0-9\\+]{0,2})[\\-\\ ]{1}([0-9]{0,3})[\\-\\ ]([0-9]{0,3})[\\-\\ ]([0-9]{0,4})/i', "\$1\$2\$3\$4", $p); $p = preg_replace('/([0-9\\+]{0,2})[\\-\\ ]{1}([0-9]{0,3})[\\-\\ ]([0-9]{0,7})/i', "\$1\$2\$3", $p); $p = preg_replace('/([0-9\\+]{0,4})[\\-\\ ]{1}([0-9]{0,7})/i', "\$1\$2", $p); $p = preg_replace('/^([\\d]{10}+)$/i', "+7\$1", $p); $p = preg_replace('/[8]{1}+([9|4|3|8]{1}+)([0-9]{9})/i', "+7\$1\$2", $p); preg_match("/[+7]{2}+[0-9]{10}+/i", $p, $phone); $value = count($phone) ? current($phone) : ''; $result->setValue($value); if (!$value) { $result->setErrorMessage(isset($options['error_message']) ? $options['error_message'] : 'Необходимо указать корректный номер телефонна'); } return $result; }