From 05870caf855cf1b313bdc439dbaf7d1c29c89c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sat, 30 Nov 2019 15:28:09 +0100 Subject: [PATCH] Upgrade password when a better method is available. --- src/Repository/UserRepository.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Repository/UserRepository.php b/src/Repository/UserRepository.php index b80badfe..ea3e4345 100644 --- a/src/Repository/UserRepository.php +++ b/src/Repository/UserRepository.php @@ -28,6 +28,8 @@ use Doctrine\ORM\EntityRepository; use Doctrine\ORM\Mapping; use Doctrine\ORM\NonUniqueResultException; use Symfony\Bridge\Doctrine\RegistryInterface; +use Symfony\Component\Security\Core\User\PasswordUpgraderInterface; +use Symfony\Component\Security\Core\User\UserInterface; /** * @method User|null find($id, $lockMode = null, $lockVersion = null) @@ -35,7 +37,7 @@ use Symfony\Bridge\Doctrine\RegistryInterface; * @method User[] findAll() * @method User[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) */ -class UserRepository extends EntityRepository +class UserRepository extends EntityRepository implements PasswordUpgraderInterface { protected $anonymous_user; @@ -80,4 +82,15 @@ class UserRepository extends EntityRepository return null; } } + + /** + * @inheritDoc + */ + public function upgradePassword(UserInterface $user, string $newEncodedPassword): void + { + if ($user instanceof User) { + $user->setPassword($newEncodedPassword); + $this->getEntityManager()->flush($user); + } + } }