/**
  * Callback for ForgottenPasswordForm onSuccess event.
  * @param Form      $form
  * @param ArrayHash $values
  */
 public function formSucceeded(Form $form, $values)
 {
     $user = $this->userManager->findByEmail($values->email);
     if (!$user) {
         $form->addError('No user with given email found');
         return;
     }
     $password = Nette\Utils\Random::generate(10);
     $this->userManager->setNewPassword($user->id, $password);
     try {
         // !!! Never send passwords through email !!!
         // This is only for demonstration purposes of Notejam.
         // Ideally, you can create a unique link where user can change his password
         // himself for limited amount of time, and then send the link.
         $mail = new Nette\Mail\Message();
         $mail->setFrom('*****@*****.**', 'Notejamapp');
         $mail->addTo($user->email);
         $mail->setSubject('New notejam password');
         $mail->setBody(sprintf('Your new password: %s', $password));
         $this->mailer->send($mail);
     } catch (Nette\Mail\SendException $e) {
         Debugger::log($e, Debugger::EXCEPTION);
         $form->addError('Could not send email with new password');
     }
 }
Example #2
0
 /** Submit
  * @param Form $form
  */
 public function Submit(Form $form)
 {
     $values = $form->getValues();
     $contactEntity = new ContactEntity();
     $userEntity = new UserEntity();
     $contactEntity->setValues((array) $values);
     $userEntity->setLogin($values->login);
     $userEntity->setAclRoleID(10);
     // guest role
     $userEntity->setPassword($values->password);
     $userEntity->setActive(TRUE);
     $contactEntity->setUser($userEntity);
     try {
         $this->contactRepository->push($contactEntity);
         $result = $this->contactRepository->save();
         if ($result) {
             $this->flashMessage("Vaše registrace proběhla úspěšně.");
             $this->redirect('this');
         } else {
             $form->addError("Vaše registrace neproběhla úspěšně.");
         }
     } catch (\PDOException $e) {
         if (strpos($e->getMessage(), "1062 Duplicate entry") !== FALSE) {
             $form->addError("Uživatel {$values->login} již existuje. Zvolte si prosím jiný přihlašovací email.");
         } else {
             $form->addError($e->getMessage());
         }
     }
 }
 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');
 }
Example #4
0
 public function NfsEditFormValidate(Form $form, $values)
 {
     if ($values->export) {
         if (preg_match('/\\s/', $values->ips)) {
             $form->addError('Pole adres obsahuje mezeru. Jako oddělovač používejte čárku bez mezer, prosím!');
         }
         $f = $this->folder->find($values->folder_id);
         if (!$this->share->checkShare($f->name, $values->ips)) {
             $form->addError('Pole adres není validní. Prosím přečtěte si znovu instrukce a zadání opakujte.');
         }
     }
 }
Example #5
0
 public function nastenkaFormValidate(Form $form, $values)
 {
     if ($values->platneDo === FALSE && $values->platnostTrvale == FALSE) {
         $form->addError('"Zobrazit do" musí být platné datum.');
     }
     if ($values->platneOd === FALSE) {
         $form->addError('"Zobrazit od" musí být platné datum.');
     }
     if (!$values->platnostTrvale && $values->platneDo !== "") {
         if ($values->platneDo < $values->platneOd) {
             $form->addError('"Zobrazit od" musí být menší datum než "Zobrazit do".');
         }
     }
 }
Example #6
0
      $form->addSubmit('cancel', 'Cancel')->setAttribute('class', 'btn btn-default')->setValidationScope([]);
      return $form;
  }
  /** Vlastná validácia pre AddUserForm
 * @param Nette\Application\UI\Form $button
 */
  public function validateAddUserForm($button)
  {
      $values = $button->getForm()->getValues();
      if ($button->isSubmitted()->name == 'uloz') {
          // Over, ci dane username uz existuje.
          if ($this->users->findBy(['username' => $values->username])->count() > 0) {
              $button->addError(sprintf('Zadané užívateľské meno %s už existuje! Zvolte prosím iné!', $values->username));
          }
          // Over, ci dany email uz existuje.
 public function validateSongsMetadata(Form $form, array $values)
 {
     $songFiles = $values['song'];
     /** @var FileUpload $songFile */
     foreach ($songFiles as $songFile) {
         if ($songFile->isOk()) {
             if (!$this->hasSongValidMetadata($songFile)) {
                 $form->addError('Song ' . $songFile->getName() . ' has invalid metadata: ' . implode(', ', $this->getInvalidMetadata($songFile)) . '. Upload not permitted.');
             }
         } else {
             $form->addError('Song ' . $songFile->getName() . ' was invalid, upload failed.');
         }
     }
 }
Example #8
0
 /**
  * @param Form $form
  * @param Nette\Utils\ArrayHash $values
  * @return bool
  */
 public function formSucceeded(Form $form, $values)
 {
     if ($this->emailValidator->validate($values->email)) {
         $form->addError('Zadaný email je již zaregistrován.');
         return FALSE;
     } else {
         try {
             $this->registrator->add($values);
         } catch (DuplicateNameException $e) {
             $form->addError('Při registraci nastala chyba.');
             return FALSE;
         }
         return TRUE;
     }
 }
 public function formSucceeded(Form $form, $values)
 {
     // pro odchytavani chyb
     $error = null;
     // ostatni akce
     $product = new Model\Product($this->database);
     $values['id_user'] = $this->id_user;
     $imgs = $values['img'];
     unset($values['img']);
     // add / edit
     if ($values['id'] == null) {
         // add
         $p = $product->add($values);
         $product_id = $p->id;
         $form->getPresenter()->flashMessage('Produkt byl úspěšně vytvořen.');
     } else {
         // edit
         $error = $product->update($values, $values['id']);
         $product_id = $values['id'];
         $form->getPresenter()->flashMessage('Produkt byl úspěšně upraven.');
     }
     if ($error == null) {
         // nahrani fotek k produktu
         if ($imgs != null) {
             $photo_manager = new Model\Photo($this->database);
             $photo_manager->uploadProductPhotos($imgs, $product_id);
         }
         // presmerovani
         $form->getPresenter()->redirect('Homepage:product', $product_id);
     } else {
         $form->addError($error);
     }
 }
 public function processUserRegistration(Form $form)
 {
     $values = $form->getValues();
     $forbiddenNames = array_flip(['systém', 'system', 'admin', 'administrator', 'administrátor']);
     if (array_key_exists(strtolower($values['username']), $forbiddenNames)) {
         $form->addError('Vámi zadané jméno nelze použít. Vyberte si prosím jiné.');
         return;
     }
     $values['ip'] = $this->getHttpRequest()->getRemoteAddress();
     $values['role'] = 'employee';
     $user = new User($values['username'], $values['password'], $values['email'], $values['ip'], $this->invitation->getSender(), $values['role']);
     try {
         $this->usersFacade->registerNewUser($user, $this->invitation);
         $this->flashMessage('Váš účet byl vytvořen. Nyní se můžete přihlásit.', 'success');
         $this->redirect('Login:default');
     } catch (InvitationValidityException $iu) {
         $this->flashMessage('Registrovat se může pouze uživatel s platnou pozvánkou.', 'warning');
         $this->redirect('Login:default');
     } catch (InvalidUserInvitationEmailException $iue) {
         $form->addError('Nesouhlasí Vámi zadaný E-mail a E-mail vázaný na pozvánku.');
     } catch (\Exceptions\Runtime\DuplicateUsernameException $du) {
         $form->addError('Vámi zvolené jméno využívá již někdo jiný. Vyberte si prosím jiné jméno.');
     } catch (\Exceptions\Runtime\DuplicateEmailException $de) {
         $this->flashMessage('E-mail svázaný s pozvánkou využívá již jeden z registrovaných
              uživatelů. Nechte si zaslat novou pozvánku s jinou E-mailovou adresou.', 'warning');
         $this->redirect('Login:default');
     } catch (DBALException $d) {
         $form->addError('Registraci nelze dokončit. Zkuste to prosím později.');
     }
 }
Example #11
0
 /**
  *
  * @param Nette\Application\UI\Form $form
  * @throws \Exception
  */
 public function signInFormSucceeded($form)
 {
     $values = $form->getValues();
     if ($values->remember) {
         $this->user->setExpiration('14 days', FALSE);
     } else {
         $this->user->setExpiration('20 minutes', TRUE);
     }
     try {
         $user = $this->getActiveUserByUsername($values->username);
         if (!$user) {
             throw new \Exception('Uživatel není aktivní nebo neexistuje.');
         }
         $this->user->login($user->username, $values->password);
         $this->flashMessage('Byl/a jste úspěšně přihlášen/a jako "' . $user->username . '"', 'success');
         if (!empty($values['backSignInUrl'])) {
             $redirectToUrl = $values['backSignInUrl'];
         } else {
             $this->redirect('Homepage:');
         }
     } catch (Nette\Security\AuthenticationException $e) {
         $form->addError($e->getMessage());
     } catch (\Exception $e) {
         $form->addError($e->getMessage());
     }
     if (!empty($redirectToUrl)) {
         $this->redirectUrl($redirectToUrl);
     }
 }
Example #12
0
 public function formAddSubmitted(\Nette\Application\UI\Form $form)
 {
     $values = $form->values;
     try {
         $userRole = $this->em->getRepository('UserRole')->find($values->role);
         $values->role = $userRole;
         $user = new \Entity\User();
         $user->setValues((array) $values);
         $this->em->persist($user);
         $token = new \Entity\PasswordRecoveryToken();
         $token->setUser($user);
         $this->em->persist($token);
         $this->em->flush();
         $this->mailBuilder->buildAccountCreatedEmail($user, $token)->send();
         $this->flash(sprintf('User %s added', $user->name));
         $this->invalidateControl('grid');
         $this->popupOff();
     } catch (\PDOException $e) {
         switch ($e->getCode()) {
             case '23000':
                 $message = 'Duplicate data';
                 break;
         }
         $form->addError($message);
         $this->invalidateControl('form');
     }
 }
Example #13
0
 /**
  * Validace formulare se clankem: datum zverejneni
  * @param Form $form
  */
 public function validateForm(Form $form)
 {
     $values = $form->getValues();
     if (!empty($values->expiration)) {
         $expiration = DateTime::createFromFormat(self::$dateMask, $values->expiration);
         $today = new DateTime();
         if (!$expiration) {
             //neni validni datum
             $item = $form->getTranslator()->translate('system.voteExpiration');
             $form->addError($form->getTranslator()->translate('system.formFormat', ['item' => $item, 'format' => self::$dateMask]));
         } elseif ($expiration < $today) {
             $item = $form->getTranslator()->translate('system.voteExpiration');
             $form->addError($form->getTranslator()->translate('system.formFormat', ['item' => $item, 'format' => self::$dateMask]));
         }
     }
 }
Example #14
0
 /**
  *
  * @param  Nette\Application\UI\Form $form
  */
 public function signupFormSubmitted(Form $form)
 {
     $formValues = $form->getValues();
     $userUsernameRow = $this->userFacade->getByUsername($formValues->username);
     $userEmailRow = $this->userFacade->getByEmail($formValues->email);
     if ($userUsernameRow !== false || $userEmailRow !== false) {
         if ($userUsernameRow !== false) {
             $form['username']->addError('This username is already taken. Please use different one.');
         }
         if ($userEmailRow !== false) {
             $form['email']->addError('This email is already taken. Please use different one.');
         }
     } else {
         $hashedPassword = \Screwfix\Authenticator::calculateHash($formValues->password);
         $userArr = array('username' => $formValues->username, 'role' => 'member', 'email' => $formValues->email, 'password' => $hashedPassword);
         try {
             $this->userFacade->save($userArr);
             $user = $this->getUser();
             if ($formValues->remember) {
                 $user->setExpiration('+14 days', FALSE);
             }
             $user->login($formValues->username, $formValues->password);
             $pattern = $this->adjustPattern($formValues->patternInput['pattern'], $formValues->patternInput['firstDay']);
             $patternFilter = $this->shiftPatternFilterFactory->create($pattern);
             $this->patternFacade->save($user->getId(), $patternFilter);
         } catch (\Exception $ex) {
             $form->addError('Sorry, something went wrong. Please try again.');
         }
         $this->redirect('Home:default');
     }
 }
Example #15
0
 public function formSucceeded(Form $form, $values)
 {
     try {
         $user = $this->um->add($values->email, $values->password, $values->name);
         if ($user) {
             $this->user->login($values->email, $values->password);
             $this->onSuccess();
         } else {
             $form->addError('Oops! Your account could not be created for some reason :-(');
             $this->redrawControl('form');
         }
     } catch (\App\Model\DuplicateEmailException $e) {
         $form->addError('Sorry, this email address is already registered. Sign in or use another one.');
         $this->redrawControl('form');
     }
 }
Example #16
0
 public function FtpEditFormValidate(Form $form, $values)
 {
     $eqUsername = $this->share->findAll()->where('shareType_id = ?', self::shareType_id)->where('NOT folder_id = ?', $values->folder_id)->where('var = ?', $values->username)->fetchAll();
     if ($eqUsername) {
         $form->addError('Toto přihlašovací jméno už existuje, zvolte prosím jiné.');
     }
 }
 /**
  * Callback for Account Settings Form onSuccess event.
  * @param Form      $form
  * @param ArrayHash $values
  */
 public function formSucceeded(Form $form, $values)
 {
     if (!$this->userManager->checkPassword($this->user->getId(), $values->current)) {
         $form->addError("Invalid current password");
     }
     $this->userManager->setNewPassword($this->user->getId(), $values->new);
 }
Example #18
0
 public function signInFormSubmitted(Form $form)
 {
     try {
         $user = $this->getUser();
         $values = $form->getValues();
         /*if ($values->persistent) {
               $user->setExpiration('+30 days', FALSE);
           }*/
         /** make login */
         $user->login($values->username, $values->password);
         /** get rights */
         $userId = $user->getIdentity()->id;
         $permissions = array();
         foreach ($this->permissionRepository->getLevels($userId)->fetchPairs('url') as $page => $level) {
             $permissions[$page] = $level->level;
         }
         /** test for admin */
         $permissions['admin'] = $this->userRepository->isAdmin($userId);
         /** set permissions */
         $user->getIdentity()->setRoles($permissions);
         $this->flashMessage('Přihlášení bylo úspěšné.', 'success');
         $this->redirect('Homepage:');
     } catch (Nette\Security\AuthenticationException $e) {
         $form->addError('Neplatné uživatelské jméno nebo heslo.');
     }
 }
Example #19
0
 /**
  * Callback for SignUpForm onSuccess event.
  * @param Form      $form
  * @param ArrayHash $values
  */
 public function formSucceeded(Form $form, $values)
 {
     try {
         $this->userManager->add($values->email, $values->password);
     } catch (DuplicateNameException $e) {
         $form->addError($e->getMessage());
     }
 }
Example #20
0
 /**
  * Callback for SignInForm onSuccess event.
  * @param Form      $form
  * @param ArrayHash $values
  */
 public function formSucceeded(Form $form, $values)
 {
     try {
         $this->user->login($values->email, $values->password);
     } catch (Nette\Security\AuthenticationException $e) {
         $form->addError($e->getMessage());
     }
 }
Example #21
0
 public function succeeded(Form $form, $values)
 {
     try {
         $this->userManager->updatePassword($values, $this->userId);
     } catch (Nette\Security\AuthenticationException $e) {
         $form->addError($e->getMessage());
     }
 }
 public function formSucceeded(Form $form, $values)
 {
     $product = $this->database->findById('product', $this->id_product);
     if ($product) {
         if ($product->related('bid.id_product')->count() <= 0) {
             $photo_manager = new Model\Photo($this->database);
             $photo_manager->deleteAllProductPhotos($this->id_product);
             // smazu fotky produktu
             $product->delete();
             // smazu produkt
         } else {
             $form->addError('Produkt nelze smazat. O produkt již nějaký uživatel projevil zájem.');
         }
     } else {
         $form->addError('Produkt nebyl nalezen. Pravděpodobně jej někdo smazal.');
     }
 }
Example #23
0
 public function validateAddReservationForm(Form $form, $values)
 {
     $date = DateTimeUtils::createDbDatetimeFormatFromDateParts($values->year, $values->month, $values->day, "0", "0", "0");
     $validDate = DateTimeUtils::createDateTime(DateTimeUtils::DB_DATETIME_FORMAT, $date);
     if (!$validDate) {
         $form->addError("Zadej prosím platné datum.");
     } elseif ($validDate->format(DateTimeUtils::DB_DATE_FORMAT) < DateTimeUtils::getNow()->format(DateTimeUtils::DB_DATE_FORMAT)) {
         $form->addError("Nemůžeš si zpětně rezervovat zápas.");
     }
     if ($form->getPresenter()->isAjax() && $form->hasErrors()) {
         if ($values->reservationId == 0) {
             $form->getPresenter()->redrawControl("addReservation");
         } else {
             $form->getPresenter()->redrawControl("editReservation");
         }
     }
 }
Example #24
0
          $form->addText('rok', 'Rok narodenia:', 4, 5)->addRule(Form::RANGE, 'Rok narodenia musí byť v rozsahu od %d do %d', [1900, StrFTime("%Y", Time())]);
      }
      if ($user_view_fields["telefon"]) {
          $form->addText('telefon', 'Telefón:', 20, 20);
      }
      if ($user_view_fields["poznamka"]) {
          $form->addText('poznamka', 'Poznámka:', 50, 250);
      }
      if ($user_view_fields["pohl"]) {
          $form->addSelect('pohl', 'Pohlavie:', ['M' => 'Muž', 'Z' => 'Žena']);
      }
      $form->onValidate[] = [$this, 'validateEditUserForm'];
      $form->addSubmit('uloz', 'Ulož')->setAttribute('class', 'btn btn-success')->onClick[] = [$this, 'editUserFormSubmitted'];
      $form->addSubmit('cancel', 'Cancel')->setAttribute('class', 'btn btn-default')->setValidationScope(FALSE);
      return $form;
  }
  /** Vlastná validácia
 * @param Nette\Application\UI\Form $button
Example #25
0
 /**
  * @param string $message
  * @param array $args
  */
 public function addError($message, $args = array())
 {
     // Hack for translator - and key string like "foo.bar"
     if ($this->translator && \Nette\Utils\Strings::match($message, '~^[a-z\\.]+$~i')) {
         $message = $this->translator->translate($message, NULL, $args);
     }
     parent::addError($message);
 }
Example #26
0
 public function processNewTag(Form $form, $values)
 {
     if (!$this->authorizator->isAllowed($this->user, 'page_tag', 'create')) {
         $this->flashMessage('authorization.noPermission', FlashMessage::WARNING);
         return;
     }
     try {
         $tag = $this->tagFacade->saveTag((array) $values);
         $this->onSuccessTagSaving($tag, $this);
     } catch (TagNameAlreadyExistsException $t) {
         $form->addError($this->translator->translate('tags.tagForm.messages.nameExists', ['name' => $values['name']]));
     } catch (UrlAlreadyExistsException $url) {
         $form->addError($this->translator->translate('tags.tagForm.messages.tagUrlExists'));
     } catch (DBALException $e) {
         $form->addError($this->translator->translate('tags.tagForm.messages.savingError'));
     }
 }
Example #27
0
 public function validateEmailForm(Form $form)
 {
     $values = $form->getHttpData();
     $recaptchaSecret = $this->context->parameters["ReCaptchaSecret"];
     $recaptcha = new \ReCaptcha\ReCaptcha($recaptchaSecret);
     $httpRequest = $this->context->getByType('Nette\\Http\\Request');
     $resp = $recaptcha->verify($values["g-recaptcha-response"], $httpRequest->getRemoteAddress());
     if ($resp->isSuccess()) {
         // verified!
     } else {
         $errors = $resp->getErrorCodes();
         if (in_array("missing-input-response", $errors)) {
             $form->addError("Prosím, zaškrtněte políčko \"Nejsem robot\"");
         } else {
             $form->addError("Při odesílání zprávy došlo chybě, zkuste to prosím znovu.");
         }
     }
 }
Example #28
0
 public function formValidate(UI\Form $form, $values)
 {
     try {
         $date = new \DateTime($values['date']);
     } catch (\Exception $e) {
         $form->addError('Neplatný formát data.');
         return;
     }
 }
Example #29
0
 /**
  * Validace formulare se clankem: datum zverejneni
  * @param Form $form
  */
 public function validateForm(Form $form)
 {
     $values = $form->getValues();
     $publishDate = DateTime::createFromFormat(self::$dateMask, $values->publishDate);
     if (!$publishDate) {
         //neni validni datum
         $item = $form->getTranslator()->translate('system.published');
         $form->addError($form->getTranslator()->translate('system.formFormat', ['item' => $item, 'format' => self::$dateMask]));
     }
     $image = NULL;
     if ($values->image->isImage()) {
         $image = $values->image;
     }
     if (!empty($image) && (!$image->isOk() || !$image->isImage())) {
         $item = $form->getTranslator()->translate('system.postImage');
         $form->addError($form->getTranslator()->translate('system.formImage', ['item' => $item]));
     }
 }
Example #30
0
 /**
  * Odchytí výjimku v rámci zpracování formuláře, v případě, že je program v produkčním modu, je výjimka zalogována
  * a formuláře přidána chyba. Pokud ne, je vyhozena dál.
  * @param \Exception $exception
  * @param Nette\Application\UI\Form $form
  * @param string $message
  * @throws \Exception
  */
 protected function catchFormError(\Exception $exception, \Nette\Application\UI\Form $form, $message = "global.errors.action-error")
 {
     if (\Tracy\Debugger::$productionMode) {
         \Tracy\Debugger::log($exception->getMessage(), \Tracy\Logger::EXCEPTION);
         $form->addError($this->t($message));
     } else {
         throw $exception;
     }
 }