Kontrola práv v signále (odoslanie formulára)
- jsvelta
- Člen | 39
Tomáš Votruba v návode Jak předávat id při editaci záznamu tvrdí:
Nejdůležitějším poznatkem z celého kódu je však fakt, že práva k záznamu se musí kontrolovat i v akci, i v signálu. Odeslání formuláře je také signál (přistupný z url).
Mohol by mi niekto k tomu niečo povedať? Nepodarilo sa mi zostaviť url, kde by sa volal signál bez toho, aby sa pred tým volala akcia.
- jsvelta
- Člen | 39
Tak tak. Preštudoval som si Nette\Application\UI\Presenter->run a už mi to je jasné.
Dovod, prečo som to na prvý pohľad nevidel je ten, že moj form má všetko povinné a naviac ešte ďalšie validácie. Pri modifikovaní url, sa mi žiadne hodnoty neposlali a teda sa ani nevolal callback onSuccess.
Záver je teda taký, že tie kontroly musia byť i v signále (existencia záznamu, prístupové práva, …), lebo modifikáciou url veľmi jednoducho docielim, že sa mi volá iná akcia, než s ktorou počítam v spracovaní signálu.
- jsvelta
- Člen | 39
Ešte pridám príklady.
Správne url: http://web-con:81/…/user/edit/1?…
Volá sa akcia actionEdit(1) a po nej signál submit na komponente userForm.
Zmením na: http://web-con:81/admin/user/new?…
a mám actionNew a rovanký signál.
Ešte zmením na: http://web-con:81/admin/user?…
a mám actionDefault.
Ešte, že tie zdrojáky su pekne čitatelne :-)