src/Repository/UserRepository.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\User;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
  7. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  8. use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
  9. /**
  10.  * @method User|null find($id, $lockMode = null, $lockVersion = null)
  11.  * @method User|null findOneBy(array $criteria, array $orderBy = null)
  12.  * @method User[]    findAll()
  13.  * @method User[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  14.  */
  15. class UserRepository extends ServiceEntityRepository implements PasswordUpgraderInterface
  16. {
  17.     public function __construct(ManagerRegistry $registry)
  18.     {
  19.         parent::__construct($registryUser::class);
  20.     }
  21.     /**
  22.      * Used to upgrade (rehash) the user's password automatically over time.
  23.      */
  24.     public function upgradePassword(PasswordAuthenticatedUserInterface $userstring $newHashedPassword): void
  25.     {
  26.         if (!$user instanceof User) {
  27.             throw new UnsupportedUserException(sprintf('Instances of "%s" are not supported.'\get_class($user)));
  28.         }
  29.         $user->setPassword($newHashedPassword);
  30.         $this->_em->persist($user);
  31.         $this->_em->flush();
  32.     }
  33.     public function findUserFirmenmitglieder($firmenprofilId$sortNach1$sortNach2$sort)
  34.     {
  35.         $queryBuilder $this->createQueryBuilder('u')
  36.             ->innerJoin('u.user_profil''up')
  37.             ->andWhere('u.firmen_profil = :firmenprofil')
  38.             ->addOrderBy('up.' $sortNach1$sort)
  39.             ->addOrderBy('up.' $sortNach2'ASC');
  40.         $queryBuilder->setParameter('firmenprofil'$firmenprofilId);
  41.         return $queryBuilder->getQuery()->getResult();
  42.     }
  43.     public function findUserMitBestimmterROLE(string $role)
  44.     {
  45.         return $this->createQueryBuilder('u')
  46.             ->andWhere('u.roles LIKE :role')
  47.             ->setParameter('role''%"' $role '"%')
  48.             ->getQuery()
  49.             ->getResult();
  50.     }
  51.     public function findUserAusserCelseo()
  52.     {
  53.         return $this->createQueryBuilder('u')
  54.             ->andWhere('u.id > 100')
  55.             ->getQuery()
  56.             ->getResult();
  57.     }
  58.     public function findMoeglicheNeueCelseoMasterAccounts()
  59.     {
  60.         return $this->createQueryBuilder('u')
  61.             ->andWhere('u.id < 100')
  62.             ->andWhere('u.firmen_profil IS NULL')
  63.             ->getQuery()
  64.             ->getResult();
  65.     }
  66.     public function findUserMitFirmenverbindung()
  67.     {
  68.         $queryBuilder $this->createQueryBuilder('u')
  69.             ->andWhere('u.firmen_profil IS NOT NULL');
  70.         return $queryBuilder->getQuery()->getResult();
  71.     }
  72.     public function findUserMitBuchungsrechteMitNewsletterFreigabe(string $role)
  73.     {
  74.         return $this->createQueryBuilder('u')
  75.             ->innerJoin('u.user_profil''up')
  76.             ->andWhere('u.firmen_profil > 2')
  77.             ->andWhere('u.id > 100')
  78.             ->andWhere('u.roles LIKE :role')
  79.             ->setParameter('role''%"' $role '"%')
  80.             ->andWhere('up.newsletter = 1')
  81.             ->getQuery()
  82.             ->getResult();
  83.     }
  84.     public function findUserMitFirmenverbindungOhneProvisorischMitNewsletterFreigabe()
  85.     {
  86.         $queryBuilder $this->createQueryBuilder('u')
  87.             ->innerJoin('u.user_profil''up')
  88.             ->andWhere('u.firmen_profil IS NOT NULL')
  89.             ->andWhere('u.firmen_profil > 2')
  90.             ->andWhere('u.freigeschaltet = 1')
  91.             ->andWhere('u.angelegt_am <> u.letzter_login')
  92.             ->andWhere('u.id > 100')
  93.             ->andWhere('u.provisorischer_mitarbeiter IS NULL')
  94.             ->andWhere('up.newsletter = 1');
  95.         return $queryBuilder->getQuery()->getResult();
  96.     }
  97.     public function findAlleFreigeschalteteUserOhneProvisorischMitNewsletterFreigabe()
  98.     {
  99.         $queryBuilder $this->createQueryBuilder('u')
  100.             ->innerJoin('u.user_profil''up')
  101.             ->andWhere('u.freigeschaltet = 1')
  102.             ->andWhere('u.angelegt_am <> u.letzter_login');
  103.         $orStatements $queryBuilder->expr()->orX(
  104.             $queryBuilder->expr()->isNull('u.firmen_profil'),
  105.             $queryBuilder->expr()->gte('u.firmen_profil'2)
  106.         );
  107.         $queryBuilder->andWhere($orStatements);
  108.         $queryBuilder->andWhere('u.id > 100')
  109.             ->andWhere('u.provisorischer_mitarbeiter IS NULL')
  110.             ->andWhere('up.newsletter = 1');
  111.         return $queryBuilder->getQuery()->getResult();
  112.     }
  113.     public function findUserOnline($datumVergangenheit)
  114.     {
  115.         $queryBuilder $this->createQueryBuilder('u')
  116.             ->andWhere('u.letzter_login > :now')
  117.             ->setParameter('now'$datumVergangenheit);
  118.         return $queryBuilder->getQuery()->getResult();
  119.     }
  120.     public function findFirmenmitgliederOhneProvisorisch($firmaId$sortierung)
  121.     {
  122.         $queryBuilder $this->createQueryBuilder('u')
  123.             ->innerJoin('u.user_profil''up')
  124.             ->andWhere('u.provisorischer_mitarbeiter IS NULL')
  125.             ->andWhere('u.firmen_profil = :firmaId')
  126.             ->setParameter('firmaId'$firmaId)
  127.             ->orderBy('up.' $sortierung'ASC');
  128.         return $queryBuilder->getQuery()->getResult();
  129.     }
  130. }