/** * Prefix method to createAction() * Create Confirmation from Admin is not necessary * * @param User $user * @return void */ public function createAllConfirmed(User $user) { $this->userRepository->add($user); $this->persistenceManager->persistAll(); $this->addFlashMessage(LocalizationUtility::translate('createAndInvited')); LogUtility::log(Log::STATUS_INVITATIONPROFILECREATED, $user); // send confirmation mail to user $this->sendMailService->send('invitation', StringUtility::makeEmailArray($user->getEmail(), $user->getUsername()), StringUtility::makeEmailArray($user->getEmail(), $user->getUsername()), 'Profile creation with invitation', ['user' => $user, 'settings' => $this->settings, 'hash' => HashUtility::createHashForUser($user)], $this->config['invitation.']['email.']['invitation.']); // send notify email to admin if ($this->settings['invitation']['notifyAdminStep1']) { $this->sendMailService->send('invitationNotifyStep1', StringUtility::makeEmailArray($this->settings['invitation']['notifyAdminStep1'], $this->settings['invitation']['email']['invitationAdminNotifyStep1']['receiver']['name']['value']), StringUtility::makeEmailArray($user->getEmail(), $user->getUsername()), 'Profile creation with invitation - Step 1', ['user' => $user, 'settings' => $this->settings], $this->config['invitation.']['email.']['invitationAdminNotifyStep1.']); } $this->signalSlotDispatcher->dispatch(__CLASS__, __FUNCTION__ . 'AfterPersist', [$user, $this]); $this->redirectByAction('redirectStep1'); $this->redirect('new'); }
/** * Status action: User confirmation * * @param User $user * @param string $hash * @param string $status * @return bool allow further functions * @throws UnsupportedRequestTypeException * @throws IllegalObjectTypeException */ protected function statusUserConfirmation(User $user, $hash, $status) { if (HashUtility::validHash($hash, $user)) { if ($user->getTxFemanagerConfirmedbyuser()) { $this->addFlashMessage(LocalizationUtility::translate('userAlreadyConfirmed'), '', FlashMessage::ERROR); $this->redirect('new'); } $user = FrontendUtility::forceValues($user, $this->config['new.']['forceValues.']['onUserConfirmation.']); $user->setTxFemanagerConfirmedbyuser(true); $this->userRepository->update($user); $this->persistenceManager->persistAll(); LogUtility::log(Log::STATUS_REGISTRATIONCONFIRMEDUSER, $user); if ($this->isAdminConfirmationMissing($user)) { $this->sendMailService->send('createAdminConfirmation', StringUtility::makeEmailArray($this->settings['new']['confirmByAdmin'], $this->settings['new']['email']['createAdminConfirmation']['receiver']['name']['value']), StringUtility::makeEmailArray($user->getEmail(), $user->getUsername()), 'New Registration request', ['user' => $user, 'hash' => HashUtility::createHashForUser($user)], $this->config['new.']['email.']['createAdminConfirmation.']); $this->addFlashMessage(LocalizationUtility::translate('createRequestWaitingForAdminConfirm')); } else { $user->setDisable(false); $this->addFlashMessage(LocalizationUtility::translate('create')); LogUtility::log(Log::STATUS_NEWREGISTRATION, $user); $this->finalCreate($user, 'new', 'createStatus', true, $status); } } else { $this->addFlashMessage(LocalizationUtility::translate('createFailedProfile'), '', FlashMessage::ERROR); return false; } return true; }
/** * Prefix method to updateAction(): Update must be confirmed by Admin * * @param User $user * @return void */ public function updateRequest($user) { $dirtyProperties = UserUtility::getDirtyPropertiesFromUser($user); $user = UserUtility::rollbackUserWithChangeRequest($user, $dirtyProperties); $this->sendMailService->send('updateRequest', [$this->settings['edit']['confirmByAdmin'] => $this->settings['edit']['email']['updateRequest']['sender']['name']['value']], StringUtility::makeEmailArray($user->getEmail(), $user->getUsername()), 'New Profile change request', ['user' => $user, 'changes' => $dirtyProperties, 'hash' => HashUtility::createHashForUser($user)], $this->config['edit.']['email.']['updateRequest.']); LogUtility::log(Log::STATUS_PROFILEUPDATEREFUSEDADMIN, $user, ['dirtyProperties' => $dirtyProperties]); $this->redirectByAction('edit', 'requestRedirect'); $this->addFlashMessage(LocalizationUtility::translate('updateRequest')); }
/** * Send email to user for confirmation * * @param \Gigabonus\Gbfemanager\Domain\Model\User $user * @return void * @throws UnsupportedRequestTypeException */ protected function createUserConfirmationRequest(\Gigabonus\Gbfemanager\Domain\Model\User $user) { $this->sendMailService->send('createUserConfirmation', StringUtility::makeEmailArray($user->getEmail(), $user->getUsername()), [$this->settings['new']['email']['createUserConfirmation']['sender']['email']['value'] => $this->settings['settings']['new']['email']['createUserConfirmation']['sender']['name']['value']], 'Confirm your profile creation request', ['user' => $user, 'hash' => HashUtility::createHashForUser($user), 'registrationPageId' => 4], $this->config['new.']['email.']['createUserConfirmation.']); }