Viewing File: /usr/local/cpanel/whostmgr/docroot/cgi/ncssl/source/src/Repository/UserRepository.php

<?php

namespace App\Repository;

use App\Entity\Certificate;
use App\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\NoResultException;
use Doctrine\Persistence\ManagerRegistry;

/**
 * @extends ServiceEntityRepository<User>
 *
 * @method User|null find($id, $lockMode = null, $lockVersion = null)
 * @method User|null findOneBy(array $criteria, array $orderBy = null)
 * @method User[]    findAll()
 * @method User[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
 */
class UserRepository extends ServiceEntityRepository
{
    public function __construct(ManagerRegistry $registry)
    {
        parent::__construct($registry, User::class);
    }


    /**
     * @throws NonUniqueResultException
     * @throws NoResultException
     */
    public function findForAuthenticator(string $ncLogin, string $userName): ?User
    {
        $user = $this->findOneBy(['name' => $userName, 'ncLogin' => $ncLogin]);

        if ($user) {
            return $user;
        }

        $queryBuilder = $this->createQueryBuilder('u');

        $query = $queryBuilder
            ->select()
            ->add('where',
                $queryBuilder->expr()->andX(
                    $queryBuilder->expr()->eq('u.name', ':userName'),
                    $queryBuilder->expr()->isNull('u.ncLogin')
                )
            )
            ->setParameters([
                'userName' => $userName
            ])
            ->getQuery()
        ;

        return $query->getOneOrNullResult();
    }

    /**
     * @return float|int|mixed|string
     */
    public function findUsersForSync()
    {
        $queryBuilder = $this->createQueryBuilder('u');

        $query = $queryBuilder
            ->select()
            ->add('where',
                $queryBuilder->expr()->isNotNull('u.ncLogin')
            )
            ->getQuery()
        ;

        return $query->getResult();
    }
}
Back to Directory File Manager