mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-10 11:33:17 +00:00
59 lines
1.6 KiB
PHP
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();
|
|
}
|
|
}
|