Files
Phraseanet/lib/Alchemy/Phrasea/Model/Repositories/TokenRepository.php
Nicolas Le Goff e317f86c51 Fix CS
2014-03-23 23:07:01 +01:00

59 lines
1.6 KiB
PHP

<?php
namespace Alchemy\Phrasea\Model\Repositories;
use Alchemy\Phrasea\Model\Entities\Basket;
use Alchemy\Phrasea\Model\Entities\User;
use Alchemy\Phrasea\Model\Manipulator\TokenManipulator;
use Doctrine\ORM\EntityRepository;
/**
* TokenRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class TokenRepository extends EntityRepository
{
public function findValidationToken(Basket $basket, User $user)
{
$dql = 'SELECT t FROM Phraseanet:Token t
WHERE t.type = :type
AND t.user = :user
AND t.data = :basket_id
AND (t.expiration > CURRENT_TIMESTAMP() OR t.expiration IS NULL)';
$query = $this->_em->createQuery($dql);
$query->setParameters([
':type' => TokenManipulator::TYPE_VALIDATE,
':user' => $user,
':basket_id' => $basket->getId(),
]);
return $query->getOneOrNullResult();
}
public function findValidToken($value)
{
$dql = 'SELECT t FROM Phraseanet:Token t
WHERE t.value = :value
AND (t.expiration IS NULL OR t.expiration >= CURRENT_TIMESTAMP())';
$query = $this->_em->createQuery($dql);
$query->setParameters([':value' => $value]);
return $query->getOneOrNullResult();
}
public function findExpiredTokens()
{
$dql = 'SELECT t FROM Phraseanet:Token t
WHERE t.expiration < :date';
$query = $this->_em->createQuery($dql);
$query->setParameters([':date' => new \DateTime()]);
return $query->getResult();
}
}