src/Repository/UserRepository.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  4. use Doctrine\ORM\NonUniqueResultException;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. use Evo\Infrastructure\MappingORM\User;
  7. use Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface;
  8. use Symfony\Component\Security\Core\User\UserInterface;
  9. class UserRepository extends ServiceEntityRepository implements UserLoaderInterface
  10. {
  11.     public function __construct(ManagerRegistry $registry)
  12.     {
  13.         parent::__construct($registryUser::class);
  14.     }
  15.     public function loadUserByUsername($emailOrPhoneNumberbool $onlyActive false): ?UserInterface
  16.     {
  17.         if (null === $emailOrPhoneNumber) {
  18.             return null;
  19.         }
  20.         try {
  21.             $query $this->createQueryBuilder('u')
  22.                 ->where('u.email = :query OR u.phoneNumber = :query')
  23.                 ->setParameter('query'str_replace(' '''$emailOrPhoneNumber));
  24.             if ($onlyActive) {
  25.                 $query->andWhere('u.isActive = true');
  26.             }
  27.             return $query->getQuery()
  28.                 ->getOneOrNullResult();
  29.         } catch (NonUniqueResultException $e) {
  30.             return null;
  31.         }
  32.     }
  33.     public function searchUsername($emailOrPhoneNumber)
  34.     {
  35.         if (null === $emailOrPhoneNumber) {
  36.             return null;
  37.         }
  38.         return $this->createQueryBuilder('u')
  39.             ->where('u.email = :query OR u.phoneNumber = :query')
  40.             ->setParameter('query'str_replace(' '''$emailOrPhoneNumber))
  41.             ->getQuery()
  42.             ->getFirstResult();
  43.     }
  44.     public function getUsersNotReset($maxResult 50)
  45.     {
  46.         return $this->createQueryBuilder('u')
  47.             ->where('u.resetToken IS NULL')
  48.             ->andWhere('u.resetTokenSync <> 1')
  49.             // ->setMaxResults($maxResult)
  50.             ->getQuery()
  51.             ->getResult();
  52.     }
  53.     public function getOrganizationsList(int $userId)
  54.     {
  55.         $query $this->createQueryBuilder('u')
  56.             ->select('o.id')
  57.             ->where('u.id = :user')
  58.             ->join('u.organizations''o')
  59.             ->setParameter('user'$userId);
  60.         return $query->getQuery()->getResult();
  61.     }
  62.     /**
  63.      * @return array<array>
  64.      */
  65.     public function getOrganizationsByUser(string $email): array
  66.     {
  67.         $query $this->createQueryBuilder('u')
  68.             ->select('o.id')
  69.             ->where('u.email = :email')
  70.             ->join('u.organizations''o')
  71.             ->setParameter('email'$email);
  72.         return $query->getQuery()->getArrayResult();
  73.     }
  74. }