2 odlišné NS, backend OK, frontend identita ihned zmizí
- Kcko
- Člen | 468
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/2QbQlpz a http://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
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
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
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 :]