Více ACL a podpora v $user->isAllowed

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

Ahoj,

během vývoje jsem došel k nutnosti mít více ACL. Role má přístup k různým kategoriím, k různým jazykovým verzím a k různým zdrojům. To jsou tři rozdílné věci. Celý systém dynamické správy práv funguje bezvadně. Mám tři Acl a pokaždé když potřebuju, zavolám ten správný a ověřím roli.
Rozhodně z hlediska aplikace mi ale přijde srozumitelnější ptát se:
Environment::getUser()->isAllowed($resource,$privilege). Jenomže k uživateli je svázán pouze jeden Acl…bylo by možné jich specifikovat více, tj v config.ini mít

service.Nette-Security-IAuthorizator  = JaakResourceAcl
service.Nette-Security-IAuthorizator  = JaakLanguageAcl
service.Nette-Security-IAuthorizator  = JaakCategoryAcl

a třeba třetím parametrem v $user->isAllowed rozhodnout který ACL vzít…

Ale taky je možné, že na to jdu úplně blbě :)

Díky za postřehy, Michal

PetrP
Člen | 587
+
0
-

Asi by bylo lepší to spojit do jednoho Acl, proč jich máš několik. A podle čeho se rozhoduješ že zavoláš ten nebo ten?

romansklenar
Člen | 655
+
0
-

Nepomohlo by toto?

wotaen
Člen | 82
+
0
-

Samozřejmě spojit bych je mohl, ale nechci míchat jabka s hruškama…ty assertions vypadají zajímavě…půjde to použít.

Díky, Michal