Ako si overujete pri requeste ze ostavate na rovnakej stranke?

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

Caute, mam taku situaciu ked potrebujem overovat napr. pri volani signalu ci ostavam na rovnakej stranke a ak nie potrebujem urobit nejaku oeraciu napr. vymazat sessionSection. Ide o to ze volat signal mozem priamo v presenteri, alebo signal v komponente presenteru.

Riesenie:

$urlPath = $this->httpRequest->getUrl()->path;

$refererPath = '';
$referer = $this->httpRequest->getReferer();

if ($referer) {
	$refererPath = $this->httpRequest->getReferer()->path;
}

if ($urlPath != $refererPath) {
	$this->getStorageSection('mySection')->delete();
}

Problem:

  • Routu mam >> routa ma <presenter>/<action>[/<id>]
  • Signal na presenter je mySignal $id=>18 >> /admin/homepage/default/18
  • Signal na komponentu kde nepotrebujem to id tym padom >> /admin/

Ked zavolam signal na komponente a som napr. na Admin:Homepage:default tak:

  • $urlPath >> /admin/
  • $refererPath >> /admin/

takze vsetko sedi, ale ked zavolam signal na presentri tak:

  • $urlPath >> /admin/homepage/default/18
  • $refererPath >> /admin/

a tu nastava problem. Ako riesite ked si chcete ponechat nejake nastavenie len pre konkretnu stranku?

Editoval duskohu (14. 1. 2014 11:02)

Oli
Člen | 1215
+
0
-

Pokud ti negeneruje jedna akce víc stránek tak by šlo použít getName a getAction, nebo ne?

duskohu
Člen | 778
+
0
-

No ja musim pracovat s url, ako zistim ze som prisiel na aktualnu stranku z url Foo:action a nie z Admin:Homepage:default , lebo v tomto pripade chcem pouzit metodu ->delete() na storage.

thunderbuff
Člen | 164
+
+1
-

A nebylo by lepší místo ověřování, odkud jsi vlastně přišel, udělat dvě rozdílné akce?

Foo:action → redirect→ finální stránka

Admin:Homepage:default → redirect→ action, ve které smažeš storage → redirect → finální stránka

Editoval thunderbuff (20. 1. 2014 14:45)

duskohu
Člen | 778
+
0
-

Ani nie :-) lebo ide o komponentu a zase tolko presmerovania to sa mi vobec nepaci, urobil som to tak ze mam persistentni parameter v ktorom mam nejaky hash a ten sa udrziava len pre konkretnu akciu. Tak viem ci som stale na tom istom presentri:akci, alebo uz niekde inde. :-)