Actualización

This commit is contained in:
Xes
2025-04-10 12:24:57 +02:00
parent 8969cc929d
commit 45420b6f0d
39760 changed files with 4303286 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
<?php
/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FOS\UserBundle\Util;
use FOS\UserBundle\Model\UserInterface;
use Symfony\Component\Security\Core\Encoder\BCryptPasswordEncoder;
use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface;
/**
* Class updating the hashed password in the user when there is a new password.
*
* @author Christophe Coevoet <stof@notk.org>
*/
class PasswordUpdater implements PasswordUpdaterInterface
{
private $encoderFactory;
public function __construct(EncoderFactoryInterface $encoderFactory)
{
$this->encoderFactory = $encoderFactory;
}
public function hashPassword(UserInterface $user)
{
$plainPassword = $user->getPlainPassword();
if (0 === strlen($plainPassword)) {
return;
}
$encoder = $this->encoderFactory->getEncoder($user);
if ($encoder instanceof BCryptPasswordEncoder) {
$user->setSalt(null);
} else {
$salt = rtrim(str_replace('+', '.', base64_encode(random_bytes(32))), '=');
$user->setSalt($salt);
}
$hashedPassword = $encoder->encodePassword($plainPassword, $user->getSalt());
$user->setPassword($hashedPassword);
$user->eraseCredentials();
}
}