public function processCreateInvitation(Form $form) { $value = $form->getValues(); $invitation = new Invitation($value['email'], $this->user->getIdentity()); try { /** @var EntityResultObject $resultObject */ $resultObject = $this->invitationsFacade->createInvitation($invitation); $this->flashMessage('Registrační pozvánka byla vytvořena.', 'success'); if (!$resultObject->hasNoErrors()) { $error = $resultObject->getFirstError(); $this->flashMessage($error['message'], $error['type']); } } catch (InvitationCreationAttemptException $ca) { $this->flashMessage('Pozvánku nebyla vytvořena. Zkuste akci opakovat později.', 'error'); } catch (UserAlreadyExistsException $uae) { $form->addError('Pozvánku nelze odeslat. Uživatel s E-Mailem ' . $value['email'] . ' je již zaregistrován.'); return; } catch (InvitationAlreadyExistsException $iae) { $form->addError('Někdo jiný již odeslal pozvánku uživateli s E-mailem ' . $value['email']); return; } catch (DBALException $e) { $this->flashMessage('Při vytváření pozvánky došlo k chybě. Zkuste akci opakovat později.', 'error'); } $this->redirect('this'); }
public function processInvitation(Form $form, $values) { try { $this->invitationsFacade->checkInvitation($values['email'], $values['token']); $this->redirect('Account:registration', ['email' => $values['email'], 'token' => $values['token']]); } catch (InvitationValidityException $e) { $form->addError('Neplatná pozvánka'); } }
public function actionRegistration($email, $token) { if (!Validators::is($email, 'email')) { $this->flashMessage('E-mailová adresa nemá platný formát.', 'warning'); $this->redirect('Login:default'); } try { $this->invitation = $this->invitationsFacade->checkInvitation($email, $token); } catch (\Exceptions\Runtime\InvitationValidityException $t) { $this->flashMessage('Registrovat se může pouze uživatel s platnou pozvánkou.', 'warning'); $this->redirect('Login:default'); } $this['registrationForm']['email']->setDefaultValue($this->invitation->email); }
/** * @secured */ public function handleRemoveInvitation($email) { $this->invitationsFacade->removeInvitation($email); $this->flashMessage('Pozvánka byla úspěšně deaktivována.', 'success'); $this->refreshTable(); }
public function onAfterInvitationSending(Invitation $invitation) { $invitation->setLastSendingTime(); $this->invitationsFacade->saveInvitation($invitation); }