- Aplikace
- Databáze
- Šablony
- Formuláře
- Knihovny
- Návody
User
Třída User vám pomůže s realizací kontroly přístupových práv, přihlášením a odhlášením uživatele.
Začněte jednoduše vytvořením třídy User. Jako první
parametr contructoru můžete volitelně předat název nebo instanci
UserHandleru, jako druhý parametr pak instanci třídy Permission.
UserHandler je autentizační objekt, který bude ověřovat
uživatelské údaje. Tato třída musí implementovat rozhraní
IUserHandler – musí implementovat dvě metody, první metoda
authenticate, který vrací uživatelovu identitu, nebo chybové
konstanty, druhou metodou je metoda updateIndentity.
class UserHandler implements IUserHandler
{
public function authenticate($username, $password)
{
if ($username != ...)
return User::INVALID_USERNAME;
if ($password != ...)
return User::INVALID_PASSWORD;
return new Identity($userId, $userRole, array(
'key' => 'some value',
));
}
public function updateIdentity($id)
{
# dohledani novych uzivatelovych udaju podle jeho $id
return new Identity($userId, $userRole, array(
'key' => 'some value',
));
}
}
Metoda může vracet následující chybové konstanty:
User::INVALID_CREDENTIALS– nejobecnější, použijte, pokud nechcete uživatele informovat o tom, co zadal špatněUser::INVALID_USERNAMEUser::INVALID_PASSWORDUser::UNAUTHORIZED_USER
V případě, že uživatel zadal své přihlašovací údaje správně, je
nutné vrátit jeho identitu. K tomu využijte třídy Identity.
Této třídě předáte do contructoru primární klíč uživatele (pro jeho
pozdější dohledání), jméno uživatelovi role a dále nepovinné pole
s jeho dalšími osobními údaji, které budete v aplikaci potřebovat.
Jak je vidět z ukázky, třída UserHandler implementuje
ještě povinně druhou metodu updateIdentity. Tato metoda slouží
k aktualizaci uživatelových dát. Dané metodě je předána hodnota
uživatelova primárního klíče, který je právě povinný z těchto
důvodů.
V následující ukázce vidíte použití základních metod.
$user = new User();
$user->setUserhadnler('UserHandler');
# prihlaseni
$user->authenticate('username', 'password');
# odhlaseni
$user->signOut();
# je uzivatel prihlasen?
if ($user->isAuthenticate()) {
...
# aktualizace identity
$user->updateIndentity();
Pokud využíváte i třídu Permission, pak
jednoduše můžete používat i metody isAllowed().
$permission = new Permission;
...
$user = new User('UserHandler', $permission);
if ($user->isAllowed('posts', 'read')) {
...
Jak vidíte, třída User automaticky volá metody třídy
Permission a dosazuje do nich roli daného přihlášeného
uživatele.
