UserPassword

Nuevo en la versión 2.1: Esta restricción es nueva en la versión 2.1.

Nota

Since Symfony 2.2, the UserPassword* classes in the SymfonyComponentSecurityCoreValidatorConstraint namespace are deprecated and will be removed in Symfony 2.3. Please use the UserPassword* classes in the SymfonyComponentSecurityCoreValidatorConstraints namespace instead.

Esta verifica que un valor ingresado sea igual a la contraseña del usuario actualmente autenticado. Esto es útil en un formulario donde el usuario puede cambiar su contraseña, pero por seguridad, tiene que introducir su antigua contraseña.

Nota

No lo deberías usar para validar un formulario de acceso, ya que esto lo hace automáticamente el sistema de seguridad.

Applies to property or method
Options
Class Symfony\Component\Security\Core\Validator\Constraints\UserPassword
Validator Symfony\Component\Security\Core\Validator\Constraints\UserPasswordValidator

Uso básico

Supongamos que tienes una clase PasswordChange, que se utiliza en un formulario donde el usuario puede cambiar su contraseña, introduciendo su contraseña antigua y una nueva contraseña. Esta restricción validará que la contraseña anterior coincide con la contraseña actual del usuario:

  • YAML
    # src/UserBundle/Resources/config/validation.yml
    Acme\UserBundle\Form\Model\ChangePassword:
        properties:
            oldPassword:
                - Symfony\Component\Security\Core\Validator\Constraints\UserPassword:
                    mensaje: "Wrong value for your current password"
    
  • Annotations
    // src/Acme/UserBundle/Form/Model/ChangePassword.php
    namespace Acme\UserBundle\Form\Model;
    
    use Symfony\Component\Security\Core\Validator\Constraints as SecurityAssert;
    
    class ChangePassword
    {
        /**
         * @SecurityAssert\UserPassword(
         *     message = "Wrong value for your current password"
         * )
         */
         protected $oldPassword;
    }
    
  • XML
    <!-- src/UserBundle/Resources/config/validation.xml -->
    <class name="Acme\UserBundle\Form\Model\ChangePassword">
        <property name="Symfony\Component\Security\Core\Validator\Constraints\UserPassword">
            <option name="message">Wrong value for your current password</option>
        </property>
    </class>
    
  • PHP
    // src/Acme/UserBundle/Form/Model/ChangePassword.php
    namespace Acme\UserBundle\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' => 'Wrong value for your current password',
            )));
        }
    }
    

Opciones

message

tipo: message default: This value should be the user current password (Este valor debe ser la contraseña actual del usuario)

Este es el mensaje que aparece cuando la cadena subyacente no coincide con la contraseña del usuario actual.

Bifúrcame en GitHub