/** * Determines the frontend user, either if it's * already submitted, or by looking up the mail hash code. * * @param NULL|\Evoweb\SfRegister\Domain\Model\FrontendUser $user * @param NULL|string $hash * @return NULL|\Evoweb\SfRegister\Domain\Model\FrontendUser */ protected function determineFrontendUser(\Evoweb\SfRegister\Domain\Model\FrontendUser $user = null, $hash = null) { $frontendUser = null; $requestArguments = $this->request->getArguments(); if ($user !== null && $hash !== null) { $calculatedHash = \TYPO3\CMS\Core\Utility\GeneralUtility::hmac($requestArguments['action'] . '::' . $user->getUid()); if ($hash === $calculatedHash) { $frontendUser = $user; } // @deprecated authCode is still there for backward compatibility } elseif (!empty($requestArguments['authCode'])) { $frontendUser = $this->userRepository->findByMailhash($requestArguments['authCode']); } return $frontendUser; }
/** * @test * @return void */ public function findByMailhashReturnsUserThatShouldGetActivated() { $expected = 'testHash'; $this->testingFramework->createAndLoginFrontEndUser('', array('tx_extbase_type' => 'TYPO3\\CMS\\Extbase\\Domain\\Model\\FrontendUser', 'mailhash' => $expected)); $this->assertInstanceOf('Evoweb\\SfRegister\\Domain\\Model\\FrontendUser', $this->fixture->findByMailhash($expected)); }