2 odlišné NS, backend OK, frontend identita ihned zmizí

Kcko
Člen | 468
+
0
-

Ahoj,

k odlišení přihlášeného uživatele v backendu a frontendu používám NS.
Kód BasePresenteru v B a F vypadá takto:

<?php
	 public function getUser() {
	      $user = parent::getUser();
	      $user->getStorage()->setNamespace('Front'); // případne Admin
	      return $user;
	  }
?>

Mám 2 totožné SignPresentery (lišící se pouze NS).
V backendu jsem přihlášen, a vše je OK, odhlásím se, chci se přihlásit na Frontu mi hned po přesměrování zmizí viz http://bit.ly/2QbQlpzhttp://bit.ly/2QcU6Lb

Nette 2.3, napadá někoho na co se mám zaměřit?

Editoval Kcko (8. 9. 2018 17:52)

Kcko
Člen | 468
+
0
-

V nette 2.1 to fungivalo.

MajklNajt
Člen | 494
+
0
-

ahoj, skús si ten namespace nastaviť už v checkRequiremets

public function checkRequirements($element)
{
    $storage = $this->getUser()->getStorage();
    $storage->setNamespace("frontend");
    parent::checkRequirements($element);
}
Kcko
Člen | 468
+
0
-

MajklNajt napsal(a):

ahoj, skús si ten namespace nastaviť už v checkRequiremets

public function checkRequirements($element)
{
    $storage = $this->getUser()->getStorage();
    $storage->setNamespace("frontend");
    parent::checkRequirements($element);
}

Ahoj zdá se, že to funguje. Co se změnilo, že to nelze tak jak jsem to dělal? Díky za info.
PS. Jinak jsem si to přesunul do startupu, checkRequirements sem v životě nepoužil a funguje to taky ve startupu.

Editoval Kcko (8. 9. 2018 20:54)

MajklNajt
Člen | 494
+
+2
-

ahoj, použitie v checkRequirements sa uvádza v dokumentácií, preto som to odporučil https://doc.nette.org/…thentication#…

Čo sa zmenilo oproti 2.1 netuším, ale checkRequirements (resp. startup v tvojom prípade) sa volá s každým requestom, kdežto getUser() iba keď potrebuješ užívateľa, takže tam niekde môže byť pes zakopaný…

Kcko
Člen | 468
+
0
-

MajklNajt napsal(a):

ahoj, použitie v checkRequirements sa uvádza v dokumentácií, preto som to odporučil https://doc.nette.org/…thentication#…

Čo sa zmenilo oproti 2.1 netuším, ale checkRequirements (resp. startup v tvojom prípade) sa volá s každým requestom, kdežto getUser() iba keď potrebuješ užívateľa, takže tam niekde môže byť pes zakopaný…

Jasně, tohle ve 2.1 v docce vůbec není, díky za pomoc :]