| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <?php
- declare(strict_types=1);
- namespace App\Repository\Person;
- use App\Entity\Person\Person;
- use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
- use Doctrine\Persistence\ManagerRegistry;
- use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
- use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
- use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
- /**
- * @method Person|null find($id, $lockMode = null, $lockVersion = null)
- * @method Person|null findOneBy(array $criteria, array $orderBy = null)
- * @method Person[] findAll()
- * @method Person[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
- */
- class PersonRepository extends ServiceEntityRepository implements PasswordUpgraderInterface
- {
- public function __construct(ManagerRegistry $registry)
- {
- parent::__construct($registry, Person::class);
- }
- /**
- * Used to upgrade (rehash) the user's password automatically over time.
- */
- public function upgradePassword(PasswordAuthenticatedUserInterface $user, string $newEncodedPassword): void
- {
- if (!$user instanceof Person) {
- throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', \get_class($user)));
- }
- $user->setPassword($newEncodedPassword);
- $this->_em->persist($user);
- $this->_em->flush();
- }
- public function findOneByUsername(string $username): ?Person
- {
- return $this->findOneBy(['username' => $username]);
- }
- }
|