Návrh na chybovou výjimku

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

Bylo by možné rozšířit IAuthenticator o chybovou konstantu na způsob NOT_VERIFIED – pro případ, kdy se pokouší přihlásit neověřený uživatel?

PetrP
Člen | 587
+
0
-

Co znamená „pokouší se přihlásit neověřený uživatel“? Snad každý uživatel který se snaží přihlásit je neověřený, proto se taky přihlašuje, ne?

Nic ti nebrání přidat si ho na urovní třídy (tedy že není součástí interface, což ničemu nevadí)

class Authenticator implements IAuthenticator
{
	 const NOT_VERIFIED = 4;

	public function authenticate(array $credentials)
	{
		throw new AuthenticationException('Jste neověřený uživatel, nejprvě se přihlašte než se můžete přihlásit ;]', self::NOT_VERIFIED);
	}
}
romansklenar
Člen | 655
+
0
-

Tady asi byla na mysli situace, kdy se uživatel ověřuje např. pomocí mailu.

Já bych byl i pro, taky ji používám, způsobem jak popisuje Petr, na kterém samozřejmě není nic špatného.

hauerland
Člen | 16
+
0
-

Ano, bylo to myšleno jak říká Roman, kdy ty údaje uživatele jsou k dispozici, ale jeho účet není ověřený. Já to řeším na úrovni presenteru na základě specifické hlášky a e->getMessage(). Šlo mi o to, že ověřování účtů je poměrně používaná situace, takže by ta konstanta mohla být přímo v Nette.

PetrP
Člen | 587
+
0
-

A ve chvili kdy neni ověřený tak mu nedovolíte se přihlásit? Chápu to dobře:

if (!$row->verified)
	throw new AuthenticationException('Nejprve potvrďte registraci na vašem emailu.', self::NOT_VERIFIED);

V tom případě to dává smysl, na druhou stranu by se asi dalo klidně použít i self::INVALID_CREDENTIAL

David Grudl
Nette Core | 8218
+
0
-

Raději to tam dám jako NOT_APPROVED.