Nette user založeny na Nextras ORM

Sitole
Člen | 39
+
0
-

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

Ideální bude asi implementovat vlastní UserStorage – možná by ses mohl inspirovat tady: https://github.com/…ity-doctrine

MajklNajt
Člen | 470
+
+2
-

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 | 1834
+
+9
-

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í.

Sitole
Člen | 39
+
0
-

Nakonec jsem tedy použil Hrachovo řešení.
Ukázalo se asi jako nejlepší a zároveň nejjednodušší na implementaci.