Komponentou nezachycená vajímka

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Vladik_hk
Člen | 50
+
0
-

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
+
0
-

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());
		}
	}
kravčo
Člen | 721
+
0
-

skúsil by som:

catch (Nette\Security\AuthenticationException $e)
Vladik_hk
Člen | 50
+
0
-

No jasne, funguje, diky moc.