Jet\Auth_Role_Interface

Jak funguje autetizace a autorizace jsme si již řekli. Nyní si popíšeme rozhraní, které musíte implementovat ve vašem aplikační prostoru a vytvořit tak třídy představující role.

Statické metody pro obecnou práci s rolemi

Metoda Význam
public static get(
string $id
): static|null
Vrátí konkrétní roli (pokud existuje)
public static getList(
): iterable
Vrátí seznam všech dostupných rolí.
public static idExists(
string $id
): bool
Prověří zda je ID role již použito.

Metody pro práci s konkrétní rolí

Metoda Význam
public getId(
): string
Vrátí ID role.
public getName(
): string
Vrátí název role. Název je označení role určené pro uživatele.
public setName(
string $name
): void
Nastaví název role.
public getDescription(
): string
Vrátí popis role. Popis je informace určená pro uživatele.
public setDescription(
string $description
): void
Nastaví popis role.
public getUsers(
): iterable
Vrátí seznam uživatelů majících danou roli.
public getPrivileges(
): Auth_Role_Privilege_Interface[]
Vrátí všechna přiřazená oprávnění role v podobě instancí příslušných tříd.
public getPrivilegeValues(
string $privilege
): array
Vrátí všechny přiřazené hodnoty určeného oprávnění.
public setPrivileges(
array $privileges
): void
Hromadně roli nastaví přiřazená oprávnění (staré nastavení se přepíše). Definice oprávnění je předána v této podobě: setPrivileges([
    
'privilege_1' => ['value_a''value_b''value_c'],
    
'privilege_2' => ['value_I''value_II''value_III'],
])
public setPrivilege(
string $privilege,
array $values
) : void
Nastaví roli jedno konkrétní oprávnění a jeho hodnoty.
public removePrivilege(
string $privilege
): void
Odebere roli oprávnění (samozřejmě včetně všech hodnot)
public hasPrivilege(
string $privilege,
mixed $value=null
): bool
Ověří zda má role dané oprávnění.

Pokud má parametr $value hodnotu null, pak ověří zda oprávnění role má bez ohledu na hodnotu (tedy zda vůbec toto oprávnění má ať se týká čehokoliv).
Předchozí kapitola
Jet\Auth_User_Interface
Další kapitola
Jet\Auth_Role_Privilege_Interface