/** * @return void */ public function testFilterExpiredSessions() { $sessionLifeTime = '600'; $timestamp = time(); $this->securityConfigMock->expects($this->once())->method('getCurrentTimestamp')->willReturn($timestamp); $this->collectionMock->expects($this->once())->method('addFieldToFilter')->with('updated_at', ['gt' => $this->dateTimeMock->formatDate($timestamp - $sessionLifeTime)])->willReturnSelf(); $this->assertEquals($this->collectionMock, $this->collectionMock->filterExpiredSessions($sessionLifeTime)); }
/** * @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(); }
/** * @param bool $expectedResult * @param bool $sessionLifetime * @dataProvider dataProviderIsActive */ public function testIsActive($expectedResult, $sessionLifetime) { $this->model->setData('status', \Magento\Security\Model\AdminSessionInfo::LOGGED_IN); $this->securityConfigMock->expects($this->any())->method('getAdminSessionLifetime')->will($this->returnValue($sessionLifetime)); $this->securityConfigMock->expects($this->any())->method('getCurrentTimestamp')->will($this->returnValue(10)); $this->model->setUpdatedAt(9); $this->assertEquals($expectedResult, $this->model->isActive()); }
/** * @param bool $expectedResult * @param string $sessionLifetime * @dataProvider dataProviderSessionLifetime */ public function testSessionExpired($expectedResult, $sessionLifetime) { $timestamp = time(); $this->securityConfigMock->expects($this->once())->method('getAdminSessionLifetime')->will($this->returnValue($sessionLifetime)); $this->securityConfigMock->expects($this->once())->method('getCurrentTimestamp')->willReturn($timestamp); $this->model->setUpdatedAt(date("Y-m-d H:i:s", $timestamp - 1)); $this->assertEquals($expectedResult, $this->model->isSessionExpired()); }
/** * Apply config filters * * @param RequestCollection $passwordResetRequestEventCollection * @param int $securityEventType * @param string $accountReference * @param int $longIp * @return RequestCollection */ protected function applyFiltersByConfig(RequestCollection $passwordResetRequestEventCollection, $securityEventType, $accountReference, $longIp) { $limitMethod = $this->securityConfig->getLimitPasswordResetRequestsMethod($this->getScopeByEventType($securityEventType)); switch ($limitMethod) { case ResetMethod::OPTION_BY_EMAIL: $passwordResetRequestEventCollection->filterByAccountReference($accountReference); break; case ResetMethod::OPTION_BY_IP: $passwordResetRequestEventCollection->filterByIp($longIp); break; case ResetMethod::OPTION_BY_IP_AND_EMAIL: $passwordResetRequestEventCollection->filterByIpOrAccountReference($longIp, $accountReference); break; } return $passwordResetRequestEventCollection; }
/** * @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(); }
/** * Check whether the session is expired * * @return bool */ public function isSessionExpired() { $lifetime = $this->securityConfig->getAdminSessionLifetime(); $currentTime = $this->securityConfig->getCurrentTimestamp(); $lastUpdatedTime = $this->getUpdatedAt(); if (!is_numeric($lastUpdatedTime)) { $lastUpdatedTime = strtotime($lastUpdatedTime); } return $lastUpdatedTime <= $currentTime - $lifetime ? true : false; }
/** * @return void */ public function testLogoutOtherUserSessions() { $useId = 1; $sessionLifetime = 100; $sessionId = 50; $this->adminSessionInfoCollectionFactoryMock->expects($this->once())->method('create')->willReturn($this->adminSessionInfoCollectionMock); $this->authSessionMock->expects($this->once())->method('getUser')->willReturn($this->userMock); $this->authSessionMock->expects($this->once())->method('getSessionId')->willReturn($sessionId); $this->userMock->expects($this->once())->method('getId')->willReturn($useId); $this->adminSessionInfoCollectionMock->expects($this->once())->method('filterByUser')->with($useId, \Magento\Security\Model\AdminSessionInfo::LOGGED_IN, $sessionId)->willReturnSelf(); $this->securityConfigMock->expects($this->once())->method('getAdminSessionLifetime')->willReturn($sessionLifetime); $this->adminSessionInfoCollectionMock->expects($this->once())->method('filterExpiredSessions')->with($sessionLifetime)->willReturnSelf(); $this->adminSessionInfoCollectionMock->expects($this->once())->method('loadData')->willReturnSelf(); $this->adminSessionInfoCollectionMock->expects($this->once())->method('setDataToAll')->with($this->equalTo('status'), \Magento\Security\Model\AdminSessionInfo::LOGGED_OUT_MANUALLY)->willReturnSelf(); $this->adminSessionInfoCollectionMock->expects($this->once())->method('save'); $this->model->logoutOtherUserSessions(); }
/** * Clean expired Admin Sessions * * @return $this */ public function cleanExpiredRecords() { $this->passwordResetRequestEventCollectionFactory->create()->deleteRecordsOlderThen($this->securityConfig->getCurrentTimestamp() - self::SECURITY_CONTROL_RECORDS_LIFE_TIME); return $this; }
/** * Filter expired sessions * * @param int $sessionLifeTime * @return $this */ public function filterExpiredSessions($sessionLifeTime) { $this->addFieldToFilter('updated_at', ['gt' => $this->dateTime->formatDate($this->securityConfig->getCurrentTimestamp() - $sessionLifeTime)]); return $this; }
/** * @return void */ public function testGetRemoteIp() { $this->securityConfig->expects($this->once())->method('getRemoteIp')->with(false); $this->block->getRemoteIp(); }
/** * @return string */ public function getRemoteIp() { return $this->securityConfig->getRemoteIp(false); }
/** * Create new record * * @return $this */ protected function createNewSession() { $this->adminSessionInfoFactory->create()->setData(['session_id' => $this->authSession->getSessionId(), 'user_id' => $this->authSession->getUser()->getId(), 'ip' => $this->securityConfig->getRemoteIp(), 'status' => AdminSessionInfo::LOGGED_IN])->save(); return $this; }
/** * @return void */ public function testGetCurrentTimestamp() { $this->assertEquals(true, is_int($this->helper->getCurrentTimestamp())); }
/** * Filter by lifetime * * @param int $lifetime * @return $this */ public function filterByLifetime($lifetime) { $this->addFieldToFilter('created_at', ['gt' => $this->dateTime->formatDate($this->securityConfig->getCurrentTimestamp() - $lifetime)]); return $this; }