Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/Security/Core/Validator/Constraints/UserPasswordValidator.php
Строк: 115
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentSecurityCoreValidatorConstraints;

use 
SymfonyComponentSecurityCoreUserUserInterface;
use 
SymfonyComponentSecurityCoreEncoderEncoderFactoryInterface;
use 
SymfonyComponentSecurityCoreAuthenticationTokenStorageTokenStorageInterface;
use 
SymfonyComponentValidatorConstraint;
use 
SymfonyComponentValidatorConstraintValidator;
use 
SymfonyComponentValidatorExceptionConstraintDefinitionException;
use 
SymfonyComponentValidatorExceptionUnexpectedTypeException;

class 
UserPasswordValidator extends ConstraintValidator
{
    private 
$tokenStorage;
    private 
$encoderFactory;

    public function 
__construct(TokenStorageInterface $tokenStorageEncoderFactoryInterface $encoderFactory)
    {
        
$this->tokenStorage $tokenStorage;
        
$this->encoderFactory $encoderFactory;
    }

    
/**
     * {@inheritdoc}
     */
    
public function validate($passwordConstraint $constraint)
    {
        if (!
$constraint instanceof UserPassword) {
            throw new 
UnexpectedTypeException($constraint__NAMESPACE__.'UserPassword');
        }

        
$user $this->tokenStorage->getToken()->getUser();

        if (!
$user instanceof UserInterface) {
            throw new 
ConstraintDefinitionException('The User object must implement the UserInterface interface.');
        }

        
$encoder $this->encoderFactory->getEncoder($user);

        if (!
$encoder->isPasswordValid($user->getPassword(), $password$user->getSalt())) {
            
$this->context->addViolation($constraint->message);
        }
    }
}
Онлайн: 2
Реклама