Metoda isAllowed – kontrola zdrojů

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ViPEr*CZ*
Člen | 814
+
0
-

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.

uestla
Backer | 796
+
0
-

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.

ViPEr*CZ*
Člen | 814
+
0
-

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.

uestla
Backer | 796
+
0
-

Pro mě je to logické… Ověřovat povolení u neexistujícího zdroje nemá smysl.

ViPEr*CZ*
Člen | 814
+
0
-

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)