ACL a moduly, $acl->allow(‚admin‘, ‚Admin:*‘);

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

Ahoj, mám takový skromný dotaz :-)

Zjednodušený popis: Mám web, kde mám v hierarchii modulů v rootu možnost zobrazovat články (:Articles:show) a fotogalerie (:Galleries:show). K tomu všemu mám v modulu AdminModule nástroje pro správu tohoto obsahu (Admin:Articles:edit, Admin:Galleries:edit atd.)

Když chci pomocí ACL nastavit uživateli práva pro vše, je to jednoduché:

$acl->allow('admin', Permission::ALL);

Když mu chci povolit pouze zobrazování článků a editaci článků, je to taky jednoduché:

$acl->allow('admin', 'Articles:show');
$acl->allow('admin', 'Admin:Articles:edit');

A teď nastává problém. Jak nastavit, aby měl uživatel přístup do všeho v uživatelské části (bez toho, abych musel otravně vypisovat všechny permissions a resources) ale zároveň žádný přístup do AdminModule?

Řekl jsem si, že vyzkouším, jestli by to šlo udělat naopak (čistě ze zvědavosti), aby měl přístup do AdminModule, ale nikde jinde už ne. Zkoušel jsem tedy:

$acl->allow('admin', 'Admin:');

zkoušel jsem i

$acl->allow('admin', 'Admin:*');

ale bez úspěchu.

Prosím o radu a předem děkuji.

Editoval xxxObiWan (5. 11. 2010 16:22)

nanuqcz
Člen | 822
+
0
-

Tak jsem se nad tím trochu zamyslel a přišel jsem na to, že je to asi blbost, to by popíralo logiku ACL.