Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // src/WX/ExchangeBundle/Entity/UserRepository.php
- namespace WX\ExchangeBundle\Entity;
- use Symfony\Component\Security\Core\User\UserInterface;
- use Symfony\Component\Security\Core\User\UserProviderInterface;
- use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
- use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
- use Doctrine\ORM\EntityRepository;
- use Doctrine\ORM\NoResultException;
- class UserRepository extends EntityRepository implements UserProviderInterface
- {
- public function loadUserByUsername($username)
- {
- $q = $this
- ->createQueryBuilder('u')
- ->where('u.username = :username OR u.email = :email')
- ->setParameter('username', $username)
- ->setParameter('email', $username)
- ->getQuery();
- try {
- // The Query::getSingleResult() method throws an exception
- // if there is no record matching the criteria.
- $user = $q->getSingleResult();
- } catch (NoResultException $e) {
- $message = sprintf(
- 'Unable to find an active User object identified by "%s".',
- $username
- );
- throw new UsernameNotFoundException($message, 0, $e);
- }
- return $user;
- }
- public function refreshUser(UserInterface $user)
- {
- $class = get_class($user);
- if (!$this->supportsClass($class)) {
- throw new UnsupportedUserException(
- sprintf(
- 'Instances of "%s" are not supported.',
- $class
- )
- );
- }
- return $this->find($user->getId());
- }
- public function supportsClass($class)
- {
- return $this->getEntityName() === $class
- || is_subclass_of($class, $this->getEntityName());
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement