Interface UserStorage nemá metodu setNamespace, ale v dokumentaci je zmíněna
- Polki
- Člen | 553
Zdravím. Potřebuju v aplikaci nad nette 3.1. a PHP8 sprovoznit na novém projektu multipřihlašování.
Jendo do administrace a jedno pro klasické usery. Jako vždy mrknu do dokumentace, protože to používám jen jednou na začátku projektu a v ní je krásně popsáno, že abych toho co chci docílil, mám nastavit namespace úložišti usera. Viz dokumentace.
Když jsem ale ve svém IDE začal psát kód
$this->getUser()->getStorage()->setN
, tak mi nic
nenapovědělo. Říkám si blbé IDE vyměním ho. No a kouknu se do toho, co
vrací getStorage()
Vidím, že ono tu metodu opravdu nemá. Tak si říkám, jestli je to chyba, nebo zase nějaká nová fičura, nebo jestli to má co dělat s tímto postem na blogu , jelikož noSession, noNamespaces???
Pro mě momentálně malá věc, ale pokud použiju konstrukci z dokumentace
$this->getUser()->getStorage()->setNamespace('backend');
a
nějaký kolega v budoucnu se rozhodne vytvořit si vlastní UserStorage,
protože ta původní Neťácká už nebude dostačující, tak ať počítám
jak počítám, dává mi smysl, že NEBUDE prohledávat celý kód a prostě
jen implementuje metody které jsou v rozhraní
Nette\Security\UserStorage
a bude happy, že má hotovo a ono ouha,
protože mu celý systém spadne na tom, že můj kód opsaný z dokumentace
Nette hází chybu.
Co tedy s tím? Vytvořit si vlastní UserStorage interface, vrátit se ke
starému Nette\Http\UserStorage
, vykašlat se na namespaces a
použít na tyto účely ACL?, nebo existuje nějaká jiná cesta, jak stejného
výsledku dosáhnout? @DavidGrudl
Díky.
Editoval Polki (17. 3. 2021 23:53)
- David Grudl
- Nette Core | 8218
Celá ta část „Více nezávislých přihlášení“ je úplně divná. Asi by bylo lepší nastavení namespace přidat přimo do konfigurace.