diff -r 806e57d67020 -r e54dfe4d0b2b vendor/bundles/FOS/UserBundle/Validator/UniqueValidator.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/bundles/FOS/UserBundle/Validator/UniqueValidator.php Fri Sep 30 11:24:53 2011 +0200 @@ -0,0 +1,77 @@ + + * + * 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\Validator\Constraint; +use Symfony\Component\Validator\ConstraintValidator; +use FOS\UserBundle\Model\UserManagerInterface; +use Symfony\Component\Validator\Exception\UnexpectedTypeException; +use Symfony\Component\Validator\Exception\ValidatorException; + +/** + * UniqueValidator + */ +class UniqueValidator extends ConstraintValidator +{ + /** + * @var UserManagerInterface + */ + protected $userManager; + + /** + * Constructor + * + * @param UserManagerInterface $userManager + */ + public function __construct(UserManagerInterface $userManager) + { + $this->userManager = $userManager; + } + + /** + * Sets the user manager + * + * @param UserManagerInterface $userManager + */ + public function setUserManager(UserManagerInterface $userManager) + { + $this->userManager = $userManager; + } + + /** + * Gets the user manager + * + * @return UserManagerInterface + */ + public function getUserManager() + { + return $this->userManager; + } + + /** + * Indicates whether the constraint is valid + * + * @param Entity $value + * @param Constraint $constraint + */ + public function isValid($value, Constraint $constraint) + { + if (!$this->getUserManager()->validateUnique($value, $constraint)) { + $this->setMessage($constraint->message, array( + '%property%' => $constraint->property + )); + return false; + } + + return true; + } +}