1: <?php
2: namespace Budovy;
3:
4: use Nette\Application\UI;
5:
6: 7: 8:
9: class SignPresenter extends BasePresenter {
10: 11: 12: 13:
14: protected function checkLogin() {
15: }
16:
17: public function actionOut($param) {
18: $this->getUser()->logout();
19: $this->redirect('Sign:in');
20: }
21:
22: protected function createComponentSignInForm() {
23: $form = new UI\Form;
24:
25: $form->getElementPrototype()->role = 'form';
26:
27: $form->addText('username', 'Uživatelské jméno:')
28: ->setAttribute('class', 'form-control')
29: ->setAttribute('placeholder', 'Uživatelské jméno')
30: ->setRequired('Zadejte prosím jméno');
31:
32: $form->addPassword('password', 'Heslo:', 30)
33: ->setAttribute('class', 'form-control')
34: ->setAttribute('placeholder', 'Heslo')
35: ->setRequired('Zadejte prosím heslo');
36:
37: $form->addSubmit('login', 'Přihlásit se')
38: ->setAttribute('class', 'btn btn-inverse');
39:
40:
41: $form->onSuccess[] = $this->signInFormSucceeded;
42: return $form;
43: }
44:
45: public function signInFormSucceeded($form) {
46: $credentials = $form->getValues();
47:
48: try {
49: $this->getUser()->login($credentials->username, $credentials->password);
50: $this->redirect('Homepage:');
51: } catch (\Nette\Security\AuthenticationException $e) {
52: $this->flashMessage('Přihlášení nebylo úspěšné.', 'error');
53:
54: $form->addError($e->getMessage());
55: }
56: }
57: }