Podivné API Nette\Security\Permission

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

O Permission toho na fóru dlouhodobě mnoho není, poslední důležitý update je starý 4 roky. To vyvolává nutnou otázku: je to tak dokonalé, že s tím nikdo nemá žádný problém nebo to spíš skoro nikdo nepoužívá?

Mám totiž docela zásadní problém s API, konkrétně s těmi callbacky, které byly představené v odkazovaném tématu. Dle mého názoru ta funkce dostává naprosto špatné parametry. Spíše by měla dostat aktuální IIdentity a to co teď získává přes $acl->getQueriedResource(). To že byla použita jako assertion pro allow metodu s parametry, které dostává nyní, by ji podle mne naprosto nemělo zajímat. Proč? Tenhle callback by měl sloužit pouze pro ověření zda daný uživatel a daná resource splňují určitý vztah a/nebo že se daná resource nachází v určitém stavu. Už kvůli tomu aby se taková metoda dala kloudně testovat nezávisle na Permission. Je-li závislá na roli a privilege, tak mi to smrdí špatným návrhem a raději bych napsal několik nezávislých funkcí.

EDIT: Nyní v podstatě neexistuje způsob jak by mohl callback dostat celou IIdentity, což velmi úzce souvisí s tímto tématem.

Editoval enumag (21. 1. 2013 21:33)

Felix
Nette Core | 1198
+
0
-

Uz jsem se s tim setkal take. Zejmena spatna identifikace zdedenych roli(resources).

enumag
Člen | 2118
+
0
-

@Felix: Problém řeší mé RFC. Teď se to jen trochu seklo protože nemám od nikoho feedback. :-) Do Nette by se to ale v nějaké podobě mělo dříve nebo později dostat.