コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
 /**
  * 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');
     }
 }
コード例 #3
0
 /**
  * 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);
 }