AuthenticationException
- Jakub Šulák
- Člen | 222
Jen detail – šlo by do této třídy přidat ještě:
<?php
class AuthenticationException extends Exception
{
/**#@+ @deprecated */
const IDENTITY_NOT_FOUND = 1;
const INVALID_CREDENTIAL = 2;
const FAILURE = 3;
const NO_ROLES = 4;
/**#@-*/
}
?>
Pro případ, kdy jsou implementované role, ale k uživateli nebyla
nalezena žádná role.
Díky
- Jakub Šulák
- Člen | 222
<?php
public function authenticate(array $credentials)
{
// jméno, heslo i role mohou být získány třeba z databáze
$id = $this->getUserID($credentials['username'], $credentials['password']);
$roles = $this->getRolesByID($id);
return new Identity($id, $roles); // zde je důležité právě předání rolí
}
?>
Je fakt, že nejde o autentikaci, ale spíš o autorizaci…
Každopádně pokud bych měl $roles jako prázdnou množinu, měl by skript vyhodit vyjímku, protože každý uživatel systému by měl mít alespoň jednu roli (samozřejmě v případě, kdy mám role implementované), ne?
- David Grudl
- Nette Core | 8218
Jakub Šulák napsal(a):
Je fakt, že nejde o autentikaci, ale spíš o autorizaci…
Každopádně pokud bych měl $roles jako prázdnou množinu, měl by skript vyhodit vyjímku, protože každý uživatel systému by měl mít alespoň jednu roli (samozřejmě v případě, kdy mám role implementované), ne?
Vhodnější se mi pak jeví tu konstantu definovat přímo v třídě autorizátoru.