Update USER DATA v Identity za behu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Ja
Člen | 260
+
0
-

Ahoj,

potreboval bych po vykonani nejake akce updatovat user data ve tride Identity, vidim ze je tam getIdentity, ale setIdentity ne, je pro to nejaky duvod? Pro role tam je setter i getter.

Mohl bych to rucne prepisovat skrz $this->getUser()->getIdentity()->jmeno = ‚Franta‘; ale to mi prijde krkolomne, kdyz bych si mohl vratit aktualni stav uzivatele z databaze a pres nejake setIdentity($model->getUser())); tam ulozit cely aktualni stav uzivatele.

Diky za odpovedi a navedeni.

David Matějka
Moderator | 6445
+
0
-

Nette\Security\User pouziva k ukladani identity Nette\Http\UserStorage. je tedy moznost nastavit identitu $this->user->storage->identity = $identity;

ja to resim ale tak, ze mam vlastni identitu, ktera pri serializaci uklada akorat id uzivatele. potom staci zdedit Nette\Http\UserStorage, ktere pridam zavislost na nejakem UserRepository a prepsat metodu getIdentity, aby do te identity, kde je jen id podle toho id nacetlo i dalsi data. a nakonec to nove UserStorage nastavit jako tridu pro sluzbu nette.userStorage