diff -r 806e57d67020 -r e54dfe4d0b2b vendor/bundles/FOS/UserBundle/Validator/PasswordValidator.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/bundles/FOS/UserBundle/Validator/PasswordValidator.php Fri Sep 30 11:24:53 2011 +0200 @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace FOS\UserBundle\Validator; + +use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface; +use Symfony\Component\Validator\Constraint; +use Symfony\Component\Validator\ConstraintValidator; + +class PasswordValidator extends ConstraintValidator +{ + protected $encoderFactory; + + public function setEncoderFactory(EncoderFactoryInterface $factory) + { + $this->encoderFactory = $factory; + } + + public function isValid($object, Constraint $constraint) + { + if (!is_object($object)) { + throw new \RuntimeException('This is a class constraint.'); + } + $raw = $object->{$constraint->passwordProperty}; + $user = null === $constraint->userProperty ? $object : $object->{$constraint->userProperty}; + $encoder = $this->encoderFactory->getEncoder($user); + if (!$encoder->isPasswordValid($user->getPassword(), $raw, $user->getSalt())) { + $this->setMessage($constraint->message); + + return false; + } + + return true; + } +}