Example #1
0
 /**
  * Load last record creation timestamp
  *
  * @param int $securityEventType
  * @param string $accountReference
  * @param int $longIp
  * @return int
  */
 private function loadLastRecordCreationTimestamp($securityEventType, $accountReference, $longIp)
 {
     $collection = $this->collectionFactory->create($securityEventType, $accountReference, $longIp);
     /** @var \Magento\Security\Model\PasswordResetRequestEvent $record */
     $record = $collection->filterLastItem()->getFirstItem();
     return (int) strtotime($record->getCreatedAt());
 }
 /**
  * Create collection
  *
  * @param int $securityEventType
  * @return \Magento\Security\Model\ResourceModel\PasswordResetRequestEvent\Collection
  */
 protected function createCollection($securityEventType)
 {
     /** @var RequestCollection $passwordResetRequestEventCollection */
     $passwordResetRequestEventCollection = $this->passwordResetRequestEventCollectionFactory->create();
     $passwordResetRequestEventCollection->filterByRequestType($securityEventType);
     return $passwordResetRequestEventCollection;
 }
 /**
  * @return void
  */
 public function testCleanExpiredRecords()
 {
     $timestamp = time();
     $this->passwordResetRequestEventCollectionFactoryMock->expects($this->once())->method('create')->willReturn($this->passwordResetRequestEventCollectionMock);
     $this->securityConfigMock->expects($this->once())->method('getCurrentTimestamp')->willReturn($timestamp);
     $this->passwordResetRequestEventCollectionMock->expects($this->once())->method('deleteRecordsOlderThen')->with($timestamp - \Magento\Security\Model\SecurityManager::SECURITY_CONTROL_RECORDS_LIFE_TIME)->willReturnSelf();
     $this->model->cleanExpiredRecords();
 }
Example #4
0
 /**
  * Prepare collection
  *
  * @param int $securityEventType
  * @param string $accountReference
  * @param int $longIp
  * @return \Magento\Security\Model\ResourceModel\PasswordResetRequestEvent\Collection
  */
 protected function prepareCollection($securityEventType, $accountReference, $longIp)
 {
     if (null === $longIp) {
         $longIp = $this->remoteAddress->getRemoteAddress();
     }
     $collection = $this->collectionFactory->create($securityEventType, $accountReference, $longIp);
     $periodToCheck = $this->securityConfig->getLimitationTimePeriod();
     $collection->filterByLifetime($periodToCheck);
     return $collection;
 }
 /**
  * @param int $limitMethod
  * @param int $securityEventType
  * @param string $accountReference
  * @param string $longIp
  * @dataProvider createDataProvider
  */
 public function testCreate($limitMethod, $securityEventType = null, $accountReference = null, $longIp = null)
 {
     $collectionMcok = $this->getMockBuilder(Collection::class)->disableOriginalConstructor()->getMock();
     $this->objectManagerMock->expects($this->once())->method('create')->willReturn($collectionMcok);
     if ($securityEventType !== null) {
         $this->securityConfigMock->expects($this->once())->method('getPasswordResetProtectionType')->willReturn($limitMethod);
     }
     if ($limitMethod == ResetMethod::OPTION_BY_EMAIL) {
         $collectionMcok->expects($this->once())->method('filterByAccountReference')->with($accountReference);
     }
     if ($limitMethod == ResetMethod::OPTION_BY_IP) {
         $collectionMcok->expects($this->once())->method('filterByIp')->with($longIp);
     }
     if ($limitMethod == ResetMethod::OPTION_BY_IP_AND_EMAIL) {
         $collectionMcok->expects($this->once())->method('filterByIpOrAccountReference')->with($longIp, $accountReference);
     }
     $this->model->create($securityEventType, $accountReference, $longIp);
 }
 /**
  * @param int $requestsMethod
  * @param int $limitTimeBetweenPasswordResetRequests
  */
 protected function prepareTestCheck($requestsMethod, $limitTimeBetweenPasswordResetRequests)
 {
     $this->securityConfigMock->expects($this->once())->method('getRemoteIp')->will($this->returnValue(12345));
     $this->securityConfigMock->expects($this->any())->method('getLimitPasswordResetRequestsMethod')->will($this->returnValue($requestsMethod));
     $this->securityConfigMock->expects($this->once())->method('getLimitTimeBetweenPasswordResetRequests')->will($this->returnValue($limitTimeBetweenPasswordResetRequests));
     $this->securityConfigMock->expects($this->any())->method('getCustomerServiceEmail')->will($this->returnValue('*****@*****.**'));
     $this->passwordResetRequestEventCollectionFactoryMock->expects($this->once())->method('create')->willReturn($this->passwordResetRequestEventCollectionMock);
     $this->passwordResetRequestEventCollectionMock->expects($this->any())->method('addFieldToFilter')->willReturnSelf();
     $this->passwordResetRequestEventCollectionMock->expects($this->once())->method('filterLastItem')->willReturnSelf();
 }
 /**
  * Clean expired Admin Sessions
  *
  * @return $this
  */
 public function cleanExpiredRecords()
 {
     $this->passwordResetRequestEventCollectionFactory->create()->deleteRecordsOlderThen($this->securityConfig->getCurrentTimestamp() - self::SECURITY_CONTROL_RECORDS_LIFE_TIME);
     return $this;
 }