Podivné API Nette\Security\Permission
- enumag
- Člen | 2118
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)