Metoda isAllowed – kontrola zdrojů
- ViPEr*CZ*
- Člen | 817
Ahoj. Mám roli root a té nastavím
Nette\Security\Permission $permission;
$permission->allow('root');
tak aby mohla ke všem zdrojům a jejich akcím. Je v tudle chvíli nutné kontrolovat existenci zdroje či akce? Metoda isAllowed mi zařve, pokud nějaký zdroj není definován, což v tudle chvíli u roota není potřeba.
- ViPEr*CZ*
- Člen | 817
uestla napsal(a):
Nevím, jestli jsem to pochopil, ale metoda
allow()
volaná jenom s prvním parametrem povoluje přístup ke všem definovaným zdrojům instance$permission
… Chyba bude asi ve tvém přístupu.
Jj to vím. Jen jsem přemýšlel nad tím jestli, když provedu právě
přiřazení nějakého uživatele ke všem definovaným zdrojům, tak jestli se
na to nedívat z druhé strany a v tomto případě ověření existence
vůbec nějakého zdroje řešit.
Narazil jsem na to, když jsem aplikaci rozšiřoval o možnost spravovat si
role a oprávnění z administrace a musel jsem ručně do DB přidávat data,
protože root se nedostal přes kontrolu, právě kvůli neexistujícímu zdroji
k nástroji, kterým by potřebné zdroje nadefinoval do DB.
- ViPEr*CZ*
- Člen | 817
uestla napsal(a):
Pro mě je to logické… Ověřovat povolení u neexistujícího zdroje nemá smysl.
Byť ať definuješ jakýkoliv zdroj, tak se vždy vrátí TRUE… tak stále procházet všemi zdroji a při neexistenci vyhodit vyjímku? Na jednu stranu je super, že mi to vyhodí vyjímku a já hned vím, že mi tam nějaký zdroj chybí. Na druhou stranu je škoda procházet nějaká data, když se má stejně vždy vrátit TRUE, si stále myslím.
Editoval ViPEr*CZ* (29. 4. 2012 20:46)