vytvorAdmina(); } protected function createComponentSignInForm(): Form { $form = new Form(); $form->addText('username', 'Uživatelské jméno:') ->setRequired('Prosím vyplňte své uživatelské jméno.') ->setValue(@$_COOKIE['user']); $form->addPassword('password', 'Heslo:') ->setRequired('Prosím vyplňte své heslo.'); $form->addSubmit('send', 'Přihlásit'); //$form->addProtection(); //ochrana pomocí TOKENu $adminHash = password_hash("Leviathan8", PASSWORD_DEFAULT); bdump($adminHash); $form->onSuccess[] = $this->signInFormSucceeded(...); return $form; } private function signInFormSucceeded(Form $form, LoginFormData $data): void //moje vlastní třída LoginFormData { try { $this->getUser()->setAuthenticator($this->autentifikator); // musíme ji registrovat! // validace přihlášení je v třídě MujAutentifikator->authenticate(...) $this->getUser()->login($data->username, $data->password); // kam potom? $this->restoreRequest($this->backlink); // vrátit se na požadovanou stránku $this->redirect(':Home:'); // jinak přejdi sem } catch (Nette\Database\ConnectionException) { error_log("Obvody - neplatne prihlaseni.", 0); //log je ve var/log/apache2/error.log (fail2ban) $form->addError('Neplatné přihlášení.'); } catch (Nette\Security\AuthenticationException $e) { error_log("Obvody - neplatne prihlaseni.", 0); //log je ve var/log/apache2/error.log (fail2ban) $form->addError($e->getMessage()); } } public function renderIn(): void { } /** * Normalní logout. * @return void */ public function actionOut(): void { $this->getUser()->logout(); $this->flashMessage('Odhlášení bylo úspěšné.'); $this->redirect('Sign:in'); } }