parsování absolutní url routerem aplikace

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

Ahoj,

chtěl bych komponentě dát vlastnost přesměrování zpět. Když např. formulář vykreslím ajaxem do modal dialogu, tak po odeslání bych se rád dostal zpět na místo, kde byl dialog vytvořen. Teď to řeším takto:

global $container;
$ref = $container->getByType('Nette\Http\Request')->getReferer();
$this->redirectUrl($ref->absoluteUrl);

To sice funguje, ale přicházím o flashmessage. Nejde nějak zavolat router dané aplikace, předat mu absolutní url a aby mi to vrátilo destination a args pro standardní redirect?
Nebo to mám řešit úplně jinak?

Jan Suchánek
Člen | 404
+
0
-

@chap a nejde ty flash zprávičky tahat přímo z té komponenty nějakým getrem?

abc
Člen | 92
+
0
-

1)

global $container; //fuj
  1. Referer se dá snadno podvrhnout a vypnout, na ten nespoléhat.

Existují metody storeRequest a restoreRequest, viz:
planette

chap
Člen | 81
+
0
-

ja vím že fuj, ale jinak se mi to nepodařilo :)
storeRequest a restoreRequest když volám v té komponentě, tak mi to vytvoří odkaz na stránku s formulářem. Mám v aplikaci tabulku, kde jsou odkazy na editaci jednotlivých záznamů – odkaz mi otevře modal dialog, kde se načte ten formulář bez layoutu. Tabulka má nějaké parametry filtrování a stránkování a já bych chtěl po odeslání formuláře vrátit na ten stav tabulky, kde byl otevřen dialog. Když však použiji ten referrer, tak mi to vrátí URL s aktuálním stavem. Asi tuhle vlastnost nepotřebuji nějak nutně, ale přišlo mi to zajímavé, tak jsem chtěl zkusit.

abc
Člen | 92
+
0
-

storeRequest teda volej, když se ten dialog vytváří ne?
Referer skutečně nemusí fungovat všem, třeba já ho mám vypnutý v prohlížeči a stejně snadno ho lze podvrhnout.

Filip Procházka
Moderator | 4668
+
0
-

Moc pěkný XSS :)

Zkus si poslat přes konzolové curl request, kde v hlavičce bude

Referer: %0Ajavascript:alert(/xss/)