SecuredPresenter a následné znovuověření přihlášení uživatele

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

Ahoj. U Úkolovníčku jsem se zastavil u SecuredPresenteru. Mohl by mi někdo vysvětlit, proč je nutné v mětodě
createComponentNewTasklistForm() znovu testovat přihlášení uživatele? TaskPresenter už přece dědí od SecuredPresenteru, kde se tohle řeší.
Děkuji za vysvětlení.

ViPEr*CZ*
Člen | 817
+
0
-

radosh napsal(a):

Ahoj. U Úkolovníčku jsem se zastavil u SecuredPresenteru. Mohl by mi někdo vysvětlit, proč je nutné v mětodě
createComponentNewTasklistForm() znovu testovat přihlášení uživatele? TaskPresenter už přece dědí od SecuredPresenteru, kde se tohle řeší.
Děkuji za vysvětlení.

Pokud se v „základním“ Presenteru děje ověření zalogování v metodě startup, pak není potřeba ověřovat v potomkách. Tam už se maximálně ověřují oprávnění.

PS: nevím jak vypadá ten Váš kód co popisujete.

Editoval ViPEr*CZ* (11. 4. 2012 14:06)

radosh
Člen | 4
+
0
-

Je to z quickstartu ze stránek nette

Konkrétně se jedná o následující vysvětlující odstavec:
Nyní však máme v aplikaci bezpečnostní slabinu: formulář pro založení seznamu úkolů sice zmizel, ale pokud pošleme správná data, formulář se nám vytvoří a provede vložení do databáze. Ověření, zda je uživatel přihlášen, je nutné provést také při vytváření formuláře.

ViPEr*CZ*
Člen | 817
+
0
-

Hmm to abych se přiznal, tak ani už zas nevím… používám ve 100% případů rozdělení akcí na oprávnění a tudíž nezalogovaný uživatel by stejně neprošel. V tomto jednoduchém případě je otázka, kdy se volá createComponent a následné spracování akce submitu a kdy se volá startup? Podle obrázku životního cyklu Presenteru by totiž (předpokládal bych to) startup měla předcházet čemukoliv a tudíž ověření zda-li je uživatel přihlášen by se mělo provést ještě dříve než volání akce submit. Podle toho tutoriálu to vypadá, že to neplatí… to schválně zkusím otestovat.

PS: hmmm tak to je divný v tom tutoriálu… vyzkoušel jsem si zalogovat co se stane dříve

[2012-04-11 15-01-26] startup  @  http://rs.localhost/admin/
[2012-04-11 15-01-30] startup  @  http://rs.localhost/admin/?do=loginForm-submit
[2012-04-11 15-01-30] login submit  @  http://rs.localhost/admin/?do=loginForm-submit
[2012-04-11 15-01-30] startup  @  http://rs.localhost/admin/

Je tam vidět, že když jsem odeslal formulář, tak se dříve provedla metoda startup a až poté se spracoval submit. Asi osvětlí někdo víc osvícený ;-)

Editoval ViPEr*CZ* (11. 4. 2012 15:03)

radosh
Člen | 4
+
0
-

Děkuji.

Václav Mašín
Člen | 34
+
0
-

Přidávám se, že by mě tohle taky docela zajímalo – při procházení aktuálního tutoriálu mi tohle místo také nebylo moc jasné.

davidm
Člen | 81
+
0
-

btw jestli to nebude tim ze ta komponenta je v BasePresenteru kterej od secured nededi :P tzn kazdej presenter kterej dedi od base by ji moh beztrestne vytvorit …

https://github.com/…resenter.php#L8

radosh
Člen | 4
+
0
-

Díky, samozřejmě je komponneta úplně v jiném presenteru (Base), kde se nedědí od Secured :)
Vyřešeno.