Table of Contents
Questions & Feedback
Found a typo or an error?
Want to improve this document? Edit it.
Need support or have a technical question?
Post to the user mailing-list.
Master Symfony2 fundamentals
Symfony hosting done right
Discover the SensioLabs Support
UserPassword
UserPassword¶
New in version 2.1: This constraint is new in version 2.1.
Note
Since Symfony 2.2, the UserPassword* classes in the
Symfony\\Component\\Security\\Core\\Validator\\Constraint namespace are
deprecated and will be removed in Symfony 2.3. Please use the
UserPassword* classes in the
Symfony\\Component\\Security\\Core\\Validator\\Constraints namespace instead.
This validates that an input value is equal to the current authenticated user's password. This is useful in a form where a user can change his password, but needs to enter his old password for security.
Note
This should not be used to validate a login form, since this is done automatically by the security system.
| Applies to | property or method |
| Options | |
| Class | UserPassword |
| Validator | UserPasswordValidator |
Basic Usage¶
Suppose you have a PasswordChange class, that's used in a form where the user can change his password by entering his old password and a new password. This constraint will validate that the old password matches the user's current password:
- YAML
1 2 3 4 5 6
# src/UserBundle/Resources/config/validation.yml Acme\UserBundle\Form\Model\ChangePassword: properties: oldPassword: - Symfony\Component\Security\Core\Validator\Constraints\UserPassword: message: "Wrong value for your current password"
- Annotations
1 2 3 4 5 6 7 8 9 10 11 12 13 14
// 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
1 2 3 4 5 6
<!-- 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// 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', ))); } }





is a trademark of Fabien Potencier. All rights reserved.