Komponenta sa pokúša vytvoriť aj napriek presmerovaniu
- RichardT
- Člen | 43
Dobrý deň,
Mám aplikáciu a overovanie či je užívateľ príhlásený a následné
presmerovanie na prihlasovaciu stránku riešim v BasePresenteri. Ak však ako
neprihlásený pristúpim na URL, ktorá sa snaží pracovať s komponentou a
predáva jej persistentné parametre, napíklad
http://mojweb/mojpresenter/?mojakomponenta-persistentnyParameter=hodnota
tak napriek tomu že sa volá v BasePresenter::startup()
redirect
na úplne iný (prihlasovací) presenter, Nette sa snaží vytvoriť komponentu
mojakomponenta
, čo skončí chybou lebo k jej vytvoreniu
potrebuje nejaké udaje od prihláseného uživateľa.
Viete mi poradiť ako to vyriešiť tak, že sa užívateľ aj v tomto prípade presmeruje na prihlasovaciu stránku?
Editoval RichardT (23. 11. 2012 23:27)
- Filip Procházka
- Moderator | 4668
Ono Nette totiž, když se přesměrovává, tak vytváří odkaz. A když vytváří odkaz, tak koukne na všechny parametry co dostalo a podle toho ten odkaz vytvoří. A na to potřebuje, mimo jiné, i ty komponenty – takže si na ně dareba sáhne.
Prozatím komponenty považuj za součást veřejného rozhraní a počítej s tím, že na ně může kdokoliv sáhnout. Tedy měly by jít vytvořit vždy, ovšem signály a vykreslení by měly být chráněny.
Jestli to považovat za bug nedokážu posoudit. Ale je to známé chování.