src/AppBundle/Repository/AccessLogRepository.php line 17

Open in your IDE?
  1. <?php
  2. namespace AppBundle\Repository;
  3. use AppBundle\Entity\AccessLog;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. /**
  7.  * AccessLogRepository.
  8.  *
  9.  * This class was generated by the Doctrine ORM. Add your own custom
  10.  * repository methods below.
  11.  */
  12. class AccessLogRepository extends ServiceEntityRepository
  13. {
  14.     public function __construct(ManagerRegistry $registry)
  15.     {
  16.         parent::__construct($registryAccessLog::class);
  17.     }
  18.     /**
  19.      * get the number of failed logins for an ip.
  20.      *
  21.      * @param string $ip
  22.      */
  23.     public function findFailureQtyByIp($ip)
  24.     {
  25.         // current date -5 minutes
  26.         $date = (new \DateTime('-5 minutes'))->format('Y-m-d H:i:s');
  27.         $result $this->getEntityManager()
  28.             ->createQuery(
  29.                 'SELECT l FROM AppBundle:AccessLog l 
  30.                  WHERE l.ip = :ip
  31.                  AND l.created > :date
  32.                  AND l.type = \'failure\''
  33.             )
  34.             ->setParameter('ip'$ip)
  35.             ->setParameter('date'$date)
  36.             ->getResult();
  37.         return count($result);
  38.     }
  39. }