/**
  * action create
  *
  * @param \In2\Femanager\Domain\Model\User $user
  * @validate $user In2\Femanager\Domain\Validator\ServersideValidator
  * @validate $user In2\Femanager\Domain\Validator\PasswordValidator
  * @validate $user In2\Femanager\Domain\Validator\CaptchaValidator
  * @return void
  */
 public function createAction(User $user)
 {
     $this->allowedUserForInvitationNewAndCreate();
     $user->setDisable(TRUE);
     $user = $this->div->forceValues($user, $this->config['invitation.']['forceValues.']['beforeAnyConfirmation.'], $this->cObj);
     $user = $this->div->fallbackUsernameAndPassword($user);
     if ($this->settings['invitation']['fillEmailWithUsername'] == 1) {
         $user->setEmail($user->getUsername());
     }
     Div::hashPassword($user, $this->settings['invitation']['misc']['passwordSave']);
     $this->signalSlotDispatcher->dispatch(__CLASS__, __FUNCTION__ . 'BeforePersist', array($user, $this));
     $this->createAllConfirmed($user);
 }
 /**
  * Prefix method to createAction(): Create must be confirmed by Admin
  *
  * @param \In2\Femanager\Domain\Model\User $user
  * @return void
  */
 public function createRequest(User $user)
 {
     // persist
     $user->setDisable(TRUE);
     $this->userRepository->add($user);
     $this->persistenceManager->persistAll();
     $this->div->log(LocalizationUtility::translate('tx_femanager_domain_model_log.state.106', 'femanager'), 106, $user);
     if (!empty($this->settings['new']['confirmByUser'])) {
         // send email to user for confirmation
         $this->div->sendEmail('createUserConfirmation', Div::makeEmailArray($user->getEmail(), $user->getUsername()), array($this->settings['new']['email']['createUserConfirmation']['sender']['email']['value'] => $this->settings['settings']['new']['email']['createUserConfirmation']['sender']['name']['value']), 'Confirm your profile creation request', array('user' => $user, 'hash' => Div::createHash($user->getUsername())), $this->config['new.']['email.']['createUserConfirmation.']);
         // redirect by TypoScript
         $this->redirectByAction('new', 'requestRedirect');
         // add flashmessage
         $this->flashMessageContainer->add(LocalizationUtility::translate('createRequestWaitingForUserConfirm', 'femanager'));
         // redirect
         $this->redirect('new');
     }
     if (!empty($this->settings['new']['confirmByAdmin'])) {
         $this->flashMessageContainer->add(LocalizationUtility::translate('createRequestWaitingForAdminConfirm', 'femanager'));
         // send email to admin
         $this->div->sendEmail('createAdminConfirmation', Div::makeEmailArray($this->settings['new']['confirmByAdmin'], $this->settings['new']['email']['createAdminConfirmation']['receiver']['name']['value']), Div::makeEmailArray($user->getEmail(), $user->getUsername()), 'New Registration request', array('user' => $user, 'hash' => Div::createHash($user->getUsername() . $user->getUid())), $this->config['new.']['email.']['createAdminConfirmation.']);
         $this->redirect('new');
     }
 }