Interface UserStorage nemá metodu setNamespace, ale v dokumentaci je zmíněna

Polki
Člen | 553
+
0
-

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
+
0
-

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.

Polki
Člen | 553
+
0
-

To mi přijde jako dobrá volba. Hlavně to, že tím nezasviním presentery.