function signUpFormValidated(\Nette\Forms\BootstrapUIForm $form) { $userCorrects = preg_match("/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_]{4,40}\$/", $form->getValues()->username, $userTest); $member = new \App\Model\MemberModel($this->database); $userExists = $member->getUserName($form->values->username); $emailExists = $member->getEmail($form->values->email); $formVal = $form->getValues(TRUE); if ($userExists > 0) { unset($formVal["username"]); $this->presenter->flashMessage('Uživatelské jméno již existuje', 'error'); } elseif (\Nette\Utils\Validators::isEmail($form->values->email) == FALSE) { unset($formVal["email"]); $this->presenter->flashMessage('Neplatná e-mailová adresa', 'error'); } elseif ($emailExists > 0) { unset($formVal["email"]); $this->presenter->flashMessage('E-mail již existuje', 'error'); } elseif ($userTest == 0) { unset($formVal["username"]); $this->presenter->flashMessage('Uživatelské jméno obsahuje nepovolené znaky', 'error'); } elseif (strlen($form->values->name) < 2) { $this->presenter->flashMessage('Příliš krátké jméno', 'error'); } else { $msg = 1; } if ($msg != 1) { unset($formVal["pwd"], $formVal["pwd2"], $formVal["confirmation"]); $this->presenter->redirect(":Front:Sign:up", $formVal); } }
function sendFormSucceeded(\Nette\Forms\BootstrapUIForm $form) { $email = $form->getValues()->email; if ($form->values->layer == 'admin') { $lostPass = $this->database->table("helpdesk_emails")->where("template", "lostpass-admin")->fetch(); } else { $lostPass = $this->database->table("helpdesk_emails")->where("template", "lostpass-member")->fetch(); } if (!\Nette\Utils\Validators::isEmail($email)) { $this->presenter->flashMessage("Adresa je neplatná"); $this->presenter->redirect(":Front:Sign:lostpass"); } $passwordGenerate = \Nette\Utils\Random::generate(12, "987654321zyxwvutsrqponmlkjihgfedcba"); if ($this->database->table('users')->where(array('email' => $email))->count() == 0) { $this->flashMessage("E-mail nenalezen"); $this->presenter->redirect(":Front:Sign:lostpass"); } $member = new \App\Model\MemberModel($this->database); $member->setActivation($email, $passwordGenerate); $latte = new \Latte\Engine(); $latte->setLoader(new \Latte\Loaders\StringLoader()); $params = array('code' => $passwordGenerate, 'email' => $email, 'settings' => $this->presenter->template->settings); $mail = new \Nette\Mail\Message(); $mail->setFrom($this->presenter->template->settings['contacts:email:hq'])->addTo($email)->setSubject("Informace o novém hesle")->setHTMLBody($latte->renderToString($lostPass->body, $params)); $mailer = new \Nette\Mail\SendmailMailer(); $mailer->send($mail); $this->presenter->flashMessage('Informace o zapomenutém hesle odeslány', 'success'); $this->presenter->redirect(this); }
public function signInFormSucceeded($form, $values) { $oldid = session_id(); $member = new \App\Model\MemberModel($this->database); $blocked = $member->getState($form->values->username); if ($blocked == FALSE) { $this->presenter->flashMessage("Musíte nejdříve ověřit váš účet", 'error'); $this->presenter->redirect(':Front:Sign:in'); } try { $this->presenter->getUser()->login($values->username, $values->password); $newid = session_id(); if ($this->presenter->template->settings['store:enabled']) { $this->database->table("orders")->where(array("uid" => $oldid))->update(array("uid" => $newid)); } if ($form->values->type == 'admin') { $role = $this->presenter->user->getRoles(); $roleCheck = $this->database->table("users_roles")->get($role[0]); if ($roleCheck->admin_access == 0) { $this->presenter->flashMessage($this->presenter->translator->translate('messages.sign.no-access'), "error"); $this->presenter->redirect(':Admin:Sign:in'); } else { $this->database->table("users")->get($this->presenter->user->getId())->update(array("date_visited" => date("Y-m-d H:i:s"))); } if ($form->values->type == 'admin') { $typeUrl = 'Admin'; } else { $typeUrl = 'Front'; } $typeUrl = 'Admin'; } else { $typeUrl = 'Front'; } $this->database->table("users")->get($this->presenter->user->getId())->update(array("date_visited" => date("Y-m-d H:i:s"), "login_success" => new \Nette\Database\SqlLiteral("login_success + 1"))); $this->presenter->redirect(':' . $typeUrl . ':Homepage:default'); } catch (\Nette\Security\AuthenticationException $e) { $this->database->table("users")->where(array("username" => $values->username))->update(array("login_error" => new \Nette\Database\SqlLiteral("login_error + 1"))); $this->presenter->flashMessage("Nesprávné heslo", 'error'); $this->presenter->redirect(':' . $typeUrl . ':Sign:in'); } }