User::getRoles() blbne, pokud authenticate vrátí Identitu bez rolí
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- bojovyletoun
- Člen | 667
Při použití IAuthenticatoru, který nevrací žádné role(např
SimpleAuthenticator) User::getRoles
vrací:
- v případě, že jsem odhlášen
User::$guestrole
, což je v pořádku: - v případě, že jsem přihlášen, tak
NULL
místoUser::$authenticatedrole
Chybně se zkoumá
$user->identity
namísto$user->identity->roles
. Po přihlášení je $identity vždy neNULLová a tak nikdy nedojde na druhou část ternárního operátoru.
zmíněný Kód):
public function getRoles()
{
if (!$this->isLoggedIn()) {
return array($this->guestRole);
}
$identity = $this->getIdentity();
return $identity ? $identity->getRoles() : array($this->authenticatedRole);
//úprava:
return $identity->getRoles() ? $identity->getRoles() : array($this->authenticatedRole);
}
Editoval bojovyletoun (6. 3. 2011 11:29)