mirror of
				https://github.com/alchemy-fr/Phraseanet.git
				synced 2025-10-27 03:43:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			137 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /*
 | |
|  * This file is part of Phraseanet
 | |
|  *
 | |
|  * (c) 2005-2014 Alchemy
 | |
|  *
 | |
|  * For the full copyright and license information, please view the LICENSE
 | |
|  * file that was distributed with this source code.
 | |
|  */
 | |
| 
 | |
| namespace Alchemy\Phrasea\Model\Repositories;
 | |
| 
 | |
| use Doctrine\ORM\EntityRepository;
 | |
| use Alchemy\Phrasea\Model\Entities\User;
 | |
| 
 | |
| /**
 | |
|  * User
 | |
|  *
 | |
|  * This class was generated by the Doctrine ORM. Add your own custom
 | |
|  * repository methods below.
 | |
|  */
 | |
| class UserRepository extends EntityRepository
 | |
| {
 | |
|     /**
 | |
|      * Finds an User by its primary key / identifier.
 | |
|      *
 | |
|      * @inheritdoc
 | |
|      *
 | |
|      * @return User|null
 | |
|      */
 | |
|     public function find($id, $lockMode = null, $lockVersion = null)
 | |
|     {
 | |
|         return parent::find($id, $lockMode, $lockVersion);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Finds admins.
 | |
|      *
 | |
|      * @return User[]
 | |
|      */
 | |
|     public function findAdmins()
 | |
|     {
 | |
|         $qb = $this->createQueryBuilder('u');
 | |
| 
 | |
|         $qb->where($qb->expr()->eq('u.admin', $qb->expr()->literal(true)))
 | |
|             ->andWhere($qb->expr()->isNull('u.templateOwner'))
 | |
|             ->andWhere($qb->expr()->eq('u.deleted', $qb->expr()->literal(false)));
 | |
| 
 | |
|         return $qb->getQuery()->getResult();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Finds a user by login.
 | |
|      *
 | |
|      * @param string $login
 | |
|      *
 | |
|      * @return null|User
 | |
|      */
 | |
|     public function findByLogin($login)
 | |
|     {
 | |
|         return $this->findOneBy(['login' => $login]);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Finds deleted users.
 | |
|      *
 | |
|      * @return User[]
 | |
|      */
 | |
|     public function findDeleted()
 | |
|     {
 | |
|         return $this->findBy(['deleted' => true]);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Finds a user by email.
 | |
|      * nb : mail match is CASE INSENSITIVE, "john@doe"=="John@Doe"=="john@DOE"
 | |
|      *
 | |
|      * @param string $email
 | |
|      *
 | |
|      * @return null|User
 | |
|      */
 | |
|     public function findByEmail($email)
 | |
|     {
 | |
|         $qb = $this->createQueryBuilder('u');
 | |
| 
 | |
|         $qb->where($qb->expr()->eq($qb->expr()->lower('u.email'), $qb->expr()->lower($qb->expr()->literal($email))))
 | |
|             ->andWhere($qb->expr()->isNotNull('u.email'))
 | |
|             ->andWhere($qb->expr()->eq('u.deleted', $qb->expr()->literal(false)));
 | |
| 
 | |
|         return $qb->getQuery()->getOneOrNullResult();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Finds a user that is not deleted, not a model and not a guest.
 | |
|      * nb : login match is CASE INSENSITIVE, "doe"=="Doe"=="DOE"
 | |
|      *
 | |
|      * @param $login
 | |
|      *
 | |
|      * @return null|User
 | |
|      */
 | |
|     public function findRealUserByLogin($login)
 | |
|     {
 | |
|         $qb = $this->createQueryBuilder('u');
 | |
|         $qb->where($qb->expr()->eq($qb->expr()->lower('u.login'), $qb->expr()->lower($qb->expr()->literal($login))))
 | |
|             ->andWhere($qb->expr()->isNotNull('u.email'))
 | |
|             ->andWhere($qb->expr()->isNull('u.templateOwner'))
 | |
|             ->andWhere($qb->expr()->eq('u.guest', $qb->expr()->literal(false)))
 | |
|             ->andWhere($qb->expr()->eq('u.deleted', $qb->expr()->literal(false)));
 | |
| 
 | |
|         return $qb->getQuery()->getOneOrNullResult();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Finds templates owned by a given user.
 | |
|      *
 | |
|      * @param User $user
 | |
|      *
 | |
|      * @return array
 | |
|      */
 | |
|     public function findTemplateOwner(User $user)
 | |
|     {
 | |
|         return $this->findBy(['templateOwner' => $user->getId()]);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Finds all templates
 | |
|      */
 | |
|     public function findTemplate()
 | |
|     {
 | |
|         $qb = $this->createQueryBuilder('u');
 | |
|         $qb->where('u.templateOwner is NOT NULL');
 | |
|             
 | |
|         return $qb->getQuery()->getResult();
 | |
|     }
 | |
| }
 | 
