Zamezení zobrazení formuláře v komponentě
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Croc
- Člen | 270
Zdravím,
chtěl bych se zeptat, jestli je nějakým způsobem možné zabezpečit
formulář tím, že ho vůbec nezobrazím a přesněruji ho na jinou
stránku.
Pokoušel jsem se o při definici to takto:
protected function createComponentWeightForm() {
if($this->itemManager->authenticateItemOwner($this->getParameter('id'))) {
$form = $this->weightFactory->create($this->getParameter('id'));
$form->onSuccess[] = function ($form) {
$form->getPresenter()->redirect('User:items');
};
return $form;
}
else {
$this->getPresenter()->redirect('User:');
}
}
Uvedené mi padá na:
Nette\Application\AbortException
else {
$this->getPresenter()->redirect('User:');
}
Vím že můžu zobrazení formu řešit až v šabloně, ale jde mi především o to přesměrování.
- Oli
- Člen | 1215
No tak tam vytvoř akci na které se nachází ten formulář. A do té akce vlož tu kontrolu s přesměrováním. Pokud se nepřesměruje, tak je vše v pořádku a zobrazí se formulář… ;-)
function actionHokusPokus()
{
if(!$this->itemManager->authenticateItemOwner($this->getParameter('id'))) {
$this->getPresenter()->redirect('User:');
}
}