/** * Validation method * * @param mixed $password * * @return bool */ public function isValid($password) { $result = true; if (!\Evoweb\SfRegister\Services\Login::isLoggedIn()) { $this->addError(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('error_changepassword_notloggedin', 'SfRegister'), 1301599489); $result = false; } else { $user = $this->userRepository->findByUid($GLOBALS['TSFE']->fe_user->user['uid']); if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('saltedpasswords') && \TYPO3\CMS\Saltedpasswords\Utility\SaltedPasswordsUtility::isUsageEnabled('FE')) { /** @var \TYPO3\CMS\Saltedpasswords\Salt\SaltInterface $saltedPassword */ $saltedPassword = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getSaltingInstance($user->getPassword(), null); if (!$saltedPassword->checkPassword($password, $user->getPassword())) { $this->addError(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('error_changepassword_notequal', 'SfRegister'), 1301599507); $result = false; } } elseif ($this->settings['encryptPassword'] === 'md5') { if (md5($password) !== $user->getPassword()) { $this->addError(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('error_changepassword_notequal', 'SfRegister'), 1301599507); $result = false; } } elseif ($this->settings['encryptPassword'] === 'sha1') { if (sha1($password) !== $user->getPassword()) { $this->addError(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('error_changepassword_notequal', 'SfRegister'), 1301599507); $result = false; } } } return $result; }
/** * Save action * * @param \Evoweb\SfRegister\Domain\Model\Password $password * @return void * @validate $password Evoweb.SfRegister:User */ public function saveAction(\Evoweb\SfRegister\Domain\Model\Password $password) { if (\Evoweb\SfRegister\Services\Login::isLoggedIn()) { $user = $this->userRepository->findByUid($GLOBALS['TSFE']->fe_user->user['uid']); $this->signalSlotDispatcher->dispatch(__CLASS__, __FUNCTION__, array('user' => &$user, 'settings' => $this->settings)); $user->setPassword($this->encryptPassword($password->getPassword(), $this->settings)); $this->userRepository->update($user); $this->objectManager->get(\Evoweb\SfRegister\Services\Session::class)->remove('captchaWasValidPreviously'); } }
/** * Form action * * @return void */ public function formAction() { $user = null; /** @var \TYPO3\CMS\Extbase\Mvc\Request $originalRequest */ $originalRequest = $this->request->getOriginalRequest(); if (($this->request->hasArgument('user') || $originalRequest !== null && $originalRequest->hasArgument('user')) && \Evoweb\SfRegister\Services\Login::isLoggedIn()) { $userData = $this->request->hasArgument('user') ? $this->request->getArgument('user') : $originalRequest->getArgument('user'); if ($userData['uid'] == $GLOBALS['TSFE']->fe_user->user['uid']) { /** @var \TYPO3\CMS\Extbase\Property\PropertyMapper $propertyMapper */ $propertyMapper = $this->objectManager->get(\TYPO3\CMS\Extbase\Property\PropertyMapper::class); $user = $propertyMapper->convert($userData, \Evoweb\SfRegister\Domain\Model\FrontendUser::class); $user = $this->moveTempFile($user); } } if ($user == null) { /** @var $user \Evoweb\SfRegister\Domain\Model\FrontendUser */ $user = $this->userRepository->findByUid($GLOBALS['TSFE']->fe_user->user['uid']); } if ($originalRequest && $originalRequest->hasArgument('temporaryImage')) { $this->view->assign('temporaryImage', $originalRequest->getArgument('temporaryImage')); } $this->signalSlotDispatcher->dispatch(__CLASS__, __FUNCTION__, array('user' => &$user, 'settings' => $this->settings)); $this->view->assign('user', $user); }