<?php
namespace App\Repository;
use App\Entity\User;
use Doctrine\Persistence\ManagerRegistry;
use TheNetworg\OAuth2\Client\Provider\AzureResourceOwner;
use Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
/**
* @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 implements UserLoaderInterface
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, User::class);
}
// /**
// * @return User[] Returns an array of User objects
// */
public function loadUserByUsername($username)
{
return $this->createQueryBuilder('u')
->where('u.username = :username OR u.email = :email')
->setParameter('username', $username)
->setParameter('email', $username)
->getQuery()
->getOneOrNullResult();
}
public function findFromAzureOauth(AzureResourceOwner $owner): User
{
return $this->createQueryBuilder('u')
->Where('u.Email = :email')
->setParameter('email', $owner->getUpn())
->getQuery()
->getOneOrNullResult()
;
}
}