$presenter->formatSignalMethod($this->signal) – handleArray

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

Ahoj, pokouším se rozchodit si pro svůj projekt autorizaci a při testování kódu:

$actionMethod = $this->formatActionMethod($this->action);
$signalMethod = $this->formatSignalMethod($this->signal);
$renderMethod = $this->formatRenderMethod($this->view);

dump($actionMethod);
dump($signalMethod);
dump($renderMethod);
dump($this->signal);

mi při dotazu na signál banDetails (?do=banDetails) z dumpu vyleze toto:

"actiondefault" (13)

"handleArray" (11)

"renderdefault" (13)

array(2) [
   0 => ""
   1 => "banDetails" (10)
]

Vidím to na bug…
Nette Framework 1.0-dev 601b59d released on 2010–08–20
PHP 5.3.1


Taky přidávám dotaz: Jak byste řešili autorizaci, když by obě dvě action+render měli @secured, v první action bych provedl $this->setView('action2'); a protože se kontrola autorizace spouští hned na začátku ($presenter->startup()), druhá action/render nebude ověřena.

Je správné přepsat si setView tak, aby znovu volal authCheck? Nebo to vyřešit jinak?

David Grudl
Nette Core | 8228
+
0
-

Tam se musí použít:

$signalComponent = $this->signal[0] === '' ? $presenter : $presenter->getComponent($this->signal[0]);
$signalMethod = $signalComponent->formatSignalMethod($this->signal[1]);

Jistě, není to úplně pohodlné, ale jelikož jde o interní věc tak jsem API moc neřešil.