autentizace a autorizace → role
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- RDPanek
- Člen | 189
Ahoj, klasicky provedu autorizaci:
<?php
class UsersModel extends Object implements IAuthenticator
{
/**
* Performs an authentication
* @param array
* @return IIdentity
* @throws AuthenticationException
*/
public function authenticate(array $credentials)
{
$username = $credentials[self::USERNAME];
$password = sha1($credentials[self::PASSWORD]);
$row = dibi::fetch('SELECT * FROM [net_users] WHERE %and', array(
array('login_user = %s', $username),
array('password_user = %s', $password),
));
if (!$row) {
throw new AuthenticationException("Uživatel '$username' nebyl nalezen.", self::IDENTITY_NOT_FOUND);
}
if ($row->password_user !== $password) {
throw new AuthenticationException("Chybné heslo.", self::INVALID_CREDENTIAL);
}
unset($row->password);
return new Identity($row->real_firstname.' '.$row->real_lastname, $row->group, $row);
}
}
?>
ale pokud si vypisu:
<?php
$user = Environment::getUser();
dump($user->getRoles()); exit();
?>
dostanu:
<?php
array(1) {
0 => string(5) "guest"
}
?>
neměl bych dostat hodnu nastavenou při inicializaci Identity?
někde jsem četl – že „quest“ je výchozí, pokud se nezdaří
přihlášení, či co.
jak to mu mám rozumět a jak dojít k nápravě? Díky :-)
Editoval Gaudentius (19. 4. 2010 21:02)
- Ondřej Mirtes
- Člen | 1536
Co máš uvnitř $row->group
? Co ti vypíše
Environment::getUser()->isAuthenticated()
? :)