123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Security\Model\ResourceModel\PasswordResetRequestEvent;
- /**
- * Password reset request event collection
- *
- * @api
- * @since 100.1.0
- */
- class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
- {
- /**
- * @var string
- * @since 100.1.0
- */
- protected $_idFieldName = 'id';
- /**
- * @var \Magento\Framework\Stdlib\DateTime\DateTime
- * @since 100.1.0
- */
- protected $dateTime;
- /**
- * @param \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory
- * @param \Psr\Log\LoggerInterface $logger
- * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy
- * @param \Magento\Framework\Event\ManagerInterface $eventManager
- * @param \Magento\Framework\Stdlib\DateTime\DateTime $dateTime
- * @param \Magento\Framework\DB\Adapter\AdapterInterface|null $connection
- * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb|null $resource
- */
- public function __construct(
- \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory,
- \Psr\Log\LoggerInterface $logger,
- \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy,
- \Magento\Framework\Event\ManagerInterface $eventManager,
- \Magento\Framework\Stdlib\DateTime\DateTime $dateTime,
- \Magento\Framework\DB\Adapter\AdapterInterface $connection = null,
- \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null
- ) {
- parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource);
- $this->dateTime = $dateTime;
- }
- /**
- * Define resource model
- *
- * @return void
- * @since 100.1.0
- */
- protected function _construct()
- {
- $this->_init(
- \Magento\Security\Model\PasswordResetRequestEvent::class,
- \Magento\Security\Model\ResourceModel\PasswordResetRequestEvent::class
- );
- }
- /**
- * Filter by account reference
- *
- * @param string $reference
- * @return $this
- * @since 100.1.0
- */
- public function filterByAccountReference($reference)
- {
- $this->addFieldToFilter('account_reference', $reference);
- return $this;
- }
- /**
- * Filter by IP
- *
- * @param string $ip
- * @return $this
- * @since 100.1.0
- */
- public function filterByIp($ip)
- {
- $this->addFieldToFilter('ip', $ip);
- return $this;
- }
- /**
- * Filter by request type
- *
- * @param int $requestType
- * @return $this
- * @since 100.1.0
- */
- public function filterByRequestType($requestType)
- {
- $this->addFieldToFilter('request_type', $requestType);
- return $this;
- }
- /**
- * Filter by lifetime
- *
- * @param int $lifetime
- * @return $this
- * @since 100.1.0
- */
- public function filterByLifetime($lifetime)
- {
- $connection = $this->getConnection();
- $gmtTimestamp = $this->dateTime->gmtTimestamp();
- $this->addFieldToFilter(
- 'created_at',
- ['gt' => $connection->formatDate($gmtTimestamp - $lifetime)]
- );
- return $this;
- }
- /**
- * Filter last item
- *
- * @return $this
- * @since 100.1.0
- */
- public function filterLastItem()
- {
- $this->addOrder('created_at', self::SORT_ORDER_DESC)->getSelect()->limit(1);
- return $this;
- }
- /**
- * Filter by IP or by account reference
- *
- * @param int $ip
- * @param string $accountReference
- * @return $this
- * @since 100.1.0
- */
- public function filterByIpOrAccountReference($ip, $accountReference)
- {
- $this->addFieldToFilter(
- ['ip', 'account_reference'],
- [
- ['eq' => $ip],
- ['eq' => $accountReference],
- ]
- );
- return $this;
- }
- /**
- * Delete records older than some value
- *
- * @param int $timestamp
- * @return $this
- * @since 100.1.0
- */
- public function deleteRecordsOlderThen($timestamp)
- {
- $this->getResource()->deleteRecordsOlderThen((int)$timestamp);
- return $this;
- }
- }
|