diff --git a/Classes/Controller/NewController.php b/Classes/Controller/NewController.php index 6d132ce9d6..9c9e45d5cb 100644 --- a/Classes/Controller/NewController.php +++ b/Classes/Controller/NewController.php @@ -56,6 +56,16 @@ 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 (count($this->userRepository->findByUsername($user->getUsername())) > 0) { + $this->addFlashMessage(LocalizationUtility::translate('validationErrorUniquePage', $this->extensionName, + ['username']), '', AbstractMessage::ERROR); + $this->forwardToReferringRequest(); + } + } + UserUtility::hashPassword($user, $this->settings['new']['misc']['passwordSave']); $this->signalSlotDispatcher->dispatch(__CLASS__, __FUNCTION__ . 'BeforePersist', [$user, $this]);