*/ class UserRepository extends ServiceEntityRepository implements PasswordUpgraderInterface { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, User::class); } /** * Used to upgrade (rehash) the user's password automatically over time. */ public function upgradePassword(PasswordAuthenticatedUserInterface $user, string $newHashedPassword): void { if (!$user instanceof User) { throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.', $user::class)); } $user->setPassword($newHashedPassword); $this->getEntityManager()->persist($user); $this->getEntityManager()->flush(); } /** * Returns active users that are NOT in any UsersOrganizations mapping. * Returns User entities. * * @return User[] */ public function findUsersWithoutOrganization(): array { $qb = $this->createQueryBuilder('u') ->select('u') ->leftJoin(UsersOrganizations::class, 'uo', 'WITH', 'uo.users = u') ->andWhere('u.isDeleted = :uDeleted') ->andWhere('uo.id IS NULL') ->orderBy('u.surname', 'ASC') ->setParameter('uDeleted', false); return $qb->getQuery()->getResult(); } }