Nextras\secured-links neupraví odkaz

roman.campula
Člen | 60
+
0
-

Zdravím,
z jedné Posoboty jsem se dozvěděl o nextras\secured-links pro ochranu handle metod. Pokud to však implementuji, tak se v odkazech vůbec nic nezmění, žádný token tam není. Co všechno se musí pro zprovoznění udělat?

Presenter:

<?php
/**
 * TestPresenter.php
 */

namespace App\WebModule\Presenters;

use Nextras\Application\UI\SecuredLinksPresenterTrait;

/**
 * Test
 *
 * @package App\WebModule\Presenters
 */
class TestPresenter extends \App\AppModule\Presenters\BasePresenter {
  /**
   * Konstruktor
   */
  function __construct() {
    parent::__construct();
  }

  /**
   * @secured
   */
  public function handleSmazat($id) {
    $this->flashMessage("Smazano", "success");
    $this->redrawControl();
  }
}

?>

Šablona:

<a n:href="smazat!" class="ajax">smazat</a><br>
<a href="{link smazat!}" class="ajax">smazat</a><br>
<a href="{plink smazat!}" class="ajax">smazat</a>
hrach
Člen | 1844
+
0
-

Mrkni na dokumentaci: https://github.com/…cured-links/

roman.campula
Člen | 60
+
0
-

Já mám pocit, že právě přesně takto jsem postupoval.

jiri.pudil
Nette Blogger | 1035
+
+1
-

Kde používáš tu traitu? V souboru, co jsi poslal, sice máš use Nextras\Application\UI\SecuredLinksPresenterTrait, ale v presenteru už nikoliv; máš ji tedy v BasePresenteru, jak doporučuje dokumentace?

roman.campula
Člen | 60
+
0
-

Jo tak, ono to musí být až v samotné třídě Presenteru… Tak to jsem se svými chabými znalostmi netušil, že klíčové slovo use lze použít i jinde než přímo na nejvyšší úrovni souboru (jako use Nette apod.). Už to něco dělá, tak to snad rozběhnu.

Děkuji

Marek Bartoš
Nette Blogger | 1321
+
+3
-

Pro ujasnění – use na začátku souboru se používá, aby jsi nemusel uvádět celý namespace třídy, use uvnitř třídy se používá pro traity. Ty ti přidávají nové metody nebo překrývají metody předka.

RSS tématu Téma zavřeno