Živý update sebesama v session

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

Mám aplikaci, která ukládá informace o uživateli do DB. Když se uživatel přihlásí, má možnost si změnit nastavení. Ale jak docílím toho, aby se změny promítli i do session bez toho, aniž by se musel odhlásit a znovu přihlásit?

Michalek
Člen | 211
+
0
-

Mám to asi nějak takhle :)

<?php
// $this->user = Environment::getUser();
// $this->userIdentity = $this->user->getIdentity();
// ve $values jsou nove udaje uzivatele vzate z formulare pro zmenu

$this->db->updateId($this->userIdentity->id, $values)->execute(); // update udaju uzivatele

foreach($values as $key => $value) // zmenime to i v aktualni identite, aby se nemusel prihlasovat znovu
  $this->userIdentity->$key = $value;
?>

Editoval Michalek (11. 8. 2010 23:25)

Lawondyss
Člen | 106
+
0
-

Díky, přesně tenhle postup jsem potřeboval.

Mimochodem. Fakt se mi líbí rychlost technické podpory i v tomto času :-)

Werkov
Člen | 17
+
0
-

Také jsem postupem času došel k tomuto problému. Ale přemýšlel jsem ještě o jedné věci. Co když jsou informace v Identity nastaveny nějakou třetí stranou (hm, vlastně druhou, příklad správce webu uděluje „hodnosti“, chceme pozdrav „Ahoj, Velký kormidelníku“). To už pak nezbývá nic jiného, než při každém zobrazení stránky uživatelem ověřovat, zda se něco nezměnilo a identitu vytvořit/aktualizovat.

Napadá vás něco jiného? Či je tento přístup (dynamická data do Identity) nevhodný a řešit to nějakou jinou třídou, která není v session, ale vždy se načte přímo od zdroje?