Komponentou nezachycená vajímka
- Vladik_hk
- Člen | 50
Udelal jsem si autentizaci podle dokumentace a zdrojovych kodu. Po odeslani prihlasovaciho formulare se z prezenteru vola fce login, tak se dostaneme az na autentizacni handler, ktery v pripade chyby hazi vyjimku AuthenticationException. Problem je, ze mam prilasovaci formular udelany jako komponentu a i fce zpracovavajici odeslany formular je misto v prezenteru v komponente. No a tato komponenta mi nedokaze vyjimku AuthenticationException zachytit, nevim proc. Pokud fci pro zpracovani formulare dam do prezenteru a vse ostatni ponecham tak jak je, tak je vyjimka zachycena. diky za radu
- Vladik_hk
- Člen | 50
Jeste trocha kodu:
Komponentu prihlasovaciho formulare mam v prezenteru definovanou celkem klasicky
protected function createComponentSignInForm($name) {
$component = new SignInFormControl($this, $name);
// tu mozes volat metody komponenty atd.
return $component;
}
V komponente prihlasovaciho formulare je pak tato fce s volanim fce login a blokem pro zachyceni vyjimky, ktery vyjimku ale bohuzel nezachyti a ta probubla az nahoru.
public function signInFormSubmitted(Nette\Application\AppForm $form)
{
try {
$values = $form->getValues();
if ($values['remember']) {
Nette\Environment::getUser()->setExpiration('+ 14 days', FALSE);
} else {
Nette\Environment::getUser()->setExpiration('+ 20 minutes', TRUE);
}
Nette\Environment::getUser()->login($values['username'], $values['password']);
$this->redirect('Terminal:');
} catch (AuthenticationException $e) {
$form->addError($e->getMessage());
}
}