někdo testuje action která nesouvisí s odeslaným formem, ale přesto simuluje odeslání formu
- mcmatak
- Člen | 504
mám několik views a actions v presenteru, presenter má form a samozřejmě handler formu,
pokud někdo přijde na view např. Default tak uz v actionDefault ja checknu jeslti je registrovany, pokud ano tak ma smysl vygenerovat form a nebo ho zpracovat
pokud neni hodim flashmessage a reknu tento form nemůže být zpracován dokud se nepřihlásíš
nj ale nevím jak to někoho napadlo ale dost často zkouší adresu actionDefault2 kde uz tu kontrolu na registrovaneho uzivatele nemam, a hlavne pro tento krok nema smysl, no a na teto adrese si zadava submit formu, takze se generuje form, ktery ale vygenerovat nejde, no a otazka vubec je jak to dat uzivateli vedet protoze na nejake tvoreni flashmessage je pozde, a hlavne vubec nevim jak se tam nekdo dostava ale je to caste, podle mne nekdo si vzal odkaz kdyz odeslal ten form a dal nekam url a jak tam nekdo klika tak odesila form ale mozna se pletu j anevim
- Melmen
- Člen | 132
Já to řeším stejně jako ty, akorát že ověřuju uživatele i po odeslání formu. Tj něco jako:
Form:
$form = new \Nette\Application\UI\Form;
blablabla...
$form->onSuccess[] = callback($this, 'formsubmitted');
A zpracování formu:
public function formsubmitted($form)
{
if( !$this->getUser()->isLoggedIn ){
$this->flashMessage('Tady nemáš co dělat!', 'error');
$this->redirect(':Front:Homepage:default');
}
//Tady zpracuju formulář
}
Píšu to z hlavy, snad je to dobře :)
- Filip Procházka
- Moderator | 4668
Prohlédni si první příklad zde, je to best practise pro tvůj případ.
Editoval HosipLan (9. 2. 2012 15:44)