mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
173 lines
4.3 KiB
PHP
173 lines
4.3 KiB
PHP
<?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;
|
|
}
|
|
}
|