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);
 }