/** * 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'); } }
/** 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'); }
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.'); } } }
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".'); } } }
$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.'); } } }
/** * @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.'); } }
/** * * @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); } }
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'); } }
/** * 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])); } } }
/** * * @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'); } }
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'); } }
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); }
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.'); } }
/** * 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()); } }
/** * 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()); } }
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.'); } }
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"); } } }
$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
/** * @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); }
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')); } }
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."); } } }
public function formValidate(UI\Form $form, $values) { try { $date = new \DateTime($values['date']); } catch (\Exception $e) { $form->addError('Neplatný formát data.'); return; } }
/** * 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])); } }
/** * 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; } }