From 73083f50006796299ec13ddd9c33eb34b3ca5d27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20So=CC=88lch?= Date: Fri, 12 Apr 2019 14:34:07 +0200 Subject: [PATCH 1/2] [BUGFIX] revalidate if username is unique after it gets overriden by e-mail --- Classes/Controller/NewController.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Classes/Controller/NewController.php b/Classes/Controller/NewController.php index 6d132ce9d6..7b5ad3c3b8 100644 --- a/Classes/Controller/NewController.php +++ b/Classes/Controller/NewController.php @@ -56,6 +56,15 @@ public function createAction(User $user) $user = FrontendUtility::forceValues($user, $this->config['new.']['forceValues.']['beforeAnyConfirmation.']); $user = UserUtility::fallbackUsernameAndPassword($user); $user = UserUtility::takeEmailAsUsername($user, $this->settings); + + $usernameValidation = $this->settings['new']['validation']['username']; + if($usernameValidation['uniqueInDb'] || $usernameValidation['uniqueInPage']) { + if(!is_null($this->userRepository->findByUsername($user->getUsername()))) { + $this->addFlashMessage(LocalizationUtility::translate('validationErrorUniquePage', $this->extensionName, ['username'])); + $this->forwardToReferringRequest(); + } + } + UserUtility::hashPassword($user, $this->settings['new']['misc']['passwordSave']); $this->signalSlotDispatcher->dispatch(__CLASS__, __FUNCTION__ . 'BeforePersist', [$user, $this]); From 132c9feab5feb74958acce356ad789a758216c08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20So=CC=88lch?= Date: Fri, 12 Apr 2019 15:08:24 +0200 Subject: [PATCH 2/2] [BUGFIX] fix unique check flashmessage type --- Classes/Controller/NewController.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Classes/Controller/NewController.php b/Classes/Controller/NewController.php index 7b5ad3c3b8..9c9e45d5cb 100644 --- a/Classes/Controller/NewController.php +++ b/Classes/Controller/NewController.php @@ -58,9 +58,10 @@ public function createAction(User $user) $user = UserUtility::takeEmailAsUsername($user, $this->settings); $usernameValidation = $this->settings['new']['validation']['username']; - if($usernameValidation['uniqueInDb'] || $usernameValidation['uniqueInPage']) { - if(!is_null($this->userRepository->findByUsername($user->getUsername()))) { - $this->addFlashMessage(LocalizationUtility::translate('validationErrorUniquePage', $this->extensionName, ['username'])); + if ($usernameValidation['uniqueInDb'] || $usernameValidation['uniqueInPage']) { + if (count($this->userRepository->findByUsername($user->getUsername())) > 0) { + $this->addFlashMessage(LocalizationUtility::translate('validationErrorUniquePage', $this->extensionName, + ['username']), '', AbstractMessage::ERROR); $this->forwardToReferringRequest(); } }