Práca s Nette\Security\AuthenticationException

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

ahojte, ako zobrazim, ze prihlasenie bolo neuspesne normalne cez flashmessenge a nie len cervenu obrazovku nette?
v modely mam

if (!$row) {
	throw new NS\AuthenticationException("User '$username' not found.", self::IDENTITY_NOT_FOUND);
}

a v presenteri,

try {
	$this->getUser()->login($values->username, $values->password);
} catch (Nette\Security\AuthenticationException $e) {
	$form->addError($e->getMessage());
	return;
}

hocikde sa snazi pouzit flashmessenge, tak to nefunguje. ako by som mal postupovat? Dakujem :)

Casper
Člen | 253
+
0
-

Není ten presenter v nějakém namespace?

catch (\Nette\Security\AuthenticationException $e)
xand
Člen | 15
+
0
-

super dakujem ;)

Casper napsal(a):

Není ten presenter v nějakém namespace?

catch (\Nette\Security\AuthenticationException $e)
Xantes
Člen | 28
+
0
-

A pokud presenter v namespace (namespace AdminModule;) je, tak co bych měl upravit?

Casper napsal(a):

Není ten presenter v nějakém namespace?

catch (\Nette\Security\AuthenticationException $e)
David Matějka
Moderator | 6445
+
0
-

\Nette\Security\AuthenticationException je FQN, takze to bude fungovat bez ohledu na namespace.
muzes si ale importovat tridu/namespace a pouzit zkraceny zapis. napr.:

use Nette; //na zacatek souboru za definici namespace
.....
catch(Nette\Security\AuthenticationException $e);
use Nette\Security\AuthenticationException;
...
catch(AuthenticationException $e)
use NetteSecurity as NS;
...
catch(NS\AuthenticationException $e);

ale tohle nesouvisi s nette, ale se samotnym php, vice v dokumentaci

Xantes
Člen | 28
+
0
-

Vím, že to nesouvisí s Nette a ptám se asi blbě, ale myslel jsem, že pokud mám

catch(Nette\Security\AuthenticationException $e);

tedy plnou cestu, tak na začátku use Nette; být nemusí. Bez toho mi to ale právě nefunguje, ale ve výchozím SignPresenteru v sandboxu to na začátku taky není.