UserPassword

Валидирует, что значение ввода равно текущему аутентифицированному паролю пользователя. Это полезно в форме, где пользователь может изменять свой пароль, но должен ввести старый пароль для безопасности.

Note

Это не должно быть использовано для валидации формы входа, так как это делается автоматически системой безопасности.

Применяется к property or method
Опции
Класс UserPassword
Валидатор UserPasswordValidator

Базовое применение

Представьте, что у вас есть класс ChangePassword, который используется в форме, где пользователь может изменять свой пароль, введя старый и новый пароли. Это ограничение валидирует, что старый пароль совпадает с текущим паролем пользователя:

  • Annotations
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    // src/AppBundle/Form/Model/ChangePassword.php
    namespace AppBundle\Form\Model;
    
    use Symfony\Component\Security\Core\Validator\Constraints as SecurityAssert;
    
    class ChangePassword
    {
        /**
         * @SecurityAssert\UserPassword(
         *     message = "Неправильное значение для вашего текущего пароля"
         * )
         */
         protected $oldPassword;
    }
    
  • YAML
    1
    2
    3
    4
    5
    6
    # src/AppBundle/Resources/config/validation.yml
    AppBundle\Form\Model\ChangePassword:
        properties:
            oldPassword:
                - Symfony\Component\Security\Core\Validator\Constraints\UserPassword:
                    message: 'Неправильное значение для вашего текущего пароля'
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    <!-- src/AppBundle/Resources/config/validation.xml -->
    <?xml version="1.0" encoding="UTF-8" ?>
    <constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
    
        <class name="AppBundle\Form\Model\ChangePassword">
            <property name="oldPassword">
                <constraint
                    name="Symfony\Component\Security\Core\Validator\Constraints\UserPassword"
                >
                    <option name="message">Неправильное значение для вашего текущего пароля</option>
                </constraint>
            </property>
        </class>
    </constraint-mapping>
    
  • PHP
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // src/AppBundle/Form/Model/ChangePassword.php
    namespace AppBundle\Form\Model;
    
    use Symfony\Component\Validator\Mapping\ClassMetadata;
    use Symfony\Component\Security\Core\Validator\Constraints as SecurityAssert;
    
    class ChangePassword
    {
        public static function loadValidatorData(ClassMetadata $metadata)
        {
            $metadata->addPropertyConstraint(
                'oldPassword',
                new SecurityAssert\UserPassword(array(
                    'message' => 'Неправильное значение для вашего текущего пароля',
                ))
            );
        }
    }
    

Опции

message

тип: message по умолчанию: Это значение должно быть текущим паролем пользователя.

Это сообщение, которое отображается, когда основоположная строка не совпадает с текущим паролем пользователя.

payload

type: mixed default: null

This option can be used to attach arbitrary domain-specific data to a constraint. The configured payload is not used by the Validator component, but its processing is completely up to you.

For example, you may want to use several error levels to present failed constraints differently in the front-end depending on the severity of the error.

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.