Nette user založeny na Nextras ORM
- Sitole
- Člen | 39
Ahoj,
aktuálně na projekt nasazuji Nextras ORM a dostal jsem se trošku do slepé
uličky. Pokud chci někde v systému vypsat například příspěvky podle
autora jako parametr funkci dáma User entity, ale často potřebuji vypsat
i přihlášeného uživatele (uloženého v Nette security user), ale toho si
musím nejdříve převést na entitu (dle mého zbytečný krok, když stejně
všechna data od usera mám uložena od přihlášení. Je možné udělat
z Nette User nějakého potomka entity User a brát data z cache usera? Bylo
by to technicky možné, popřípadě už se o to někdo snažil?
Dotaz je trošku mířen na @JanTvrdík.
Editoval Sitole (10. 12. 2018 17:07)
- uestla
- Backer | 799
Ideální bude asi implementovat vlastní UserStorage – možná by ses mohl inspirovat tady: https://github.com/…ity-doctrine
- MajklNajt
- Člen | 494
stačí aby entita User
implementovala
Nette\Security\IIdentity
a v autentikátore nebudeš vracať
return new Nette\Security\Identity($row->id, $row->role, ['username' => $row->username]);
ale return $userEntity;
pozri tu https://doc.nette.org/…thentication#…
Editoval MajklNajt (10. 12. 2018 8:20)
- hrach
- Člen | 1838
Nejlepší řešení je mít v Nette Security Identity uložené jen user id a při každém requestu načítat entitu aktuálně přihlášeného usera znovu. Stejně se dost pravděpodobně u něho mohou měnit nějaké property, takže by bylo třeba složitě řešit invalidaci. Select jednoho řádku pomocí PK nic nestojí.