Refresh dat uživatele bez znalosti hesla

- Majkl578
 - Moderator | 1364
 
co rozšířit Nette\Web\User o vlastní funkci, která by obnovila IIdentity?
něco ve smyslu:
public function updateIdentity() {
  $userData = dibi::select(...)->where('userId = %i', $this->getIdentity()->userId)->fetch();
  $this->setIdentity(new Nette\Security\Identity($userData['username'], $userData['roles'], $userData));
}
něco v tom smyslu, sesmolil jsem to z voleje :)
					Editoval Majkl578 (22. 6. 2009 1:44)

- mancze
 - Člen | 58
 
Majkl578 napsal(a):
co rozšířit Nette\Web\User o vlastní funkci, která by obnovila IIdentity?
něco ve smyslu:
Díky za odpověď. Přesně to je jediné rozumné řešení, které mne
napadá. Právě mne překvapilo, že to Nette nepodporuje nativně :\. Vy snad
data nepotřebujete aktualizovat? Nebo nepoužíváte Identity?
Ještě k tomu řešení – dospěl jsem k náseldujícímu návrhu: na
Userovi se zavolá refreshIdentity(), ten na rozšířený
IAuthenticator zavolá refreshIdentity(IIdentity $identity), což
vrátí sesynchronizovaná data.
Editoval mancze (22. 6. 2009 9:57)

- _Martin_
 - Generous Backer | 679
 
Bavíte se o rozhraní IIdentity nebo o implementaci
v podobě třídy Identity? Předpokládám, že o té třídě.
Potom můžete využít toho, že ta třída má settery:
$identity = $user->getIdentity();
$identity->setName($name);
$identity->setRoles($roles);
$identity->address = $data['address'];