Zjištění informací o přihlášeném uživateli

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

Dobrý den, chtěl bych se zeptat jak zjistit více informací o uživateli než jen id pomocí:

{if ($user->isLoggedIn())}
	<span class="icon-user"></span> <b>uživatel:</b> {$user->id}
{else}
	<p>Nejste přihlášeni</p>
{/if}
Jiří Nápravník
Člen | 710
+
0
-

Tam, kde tvoříš Identitu, napln ty data v konstruktoru

new Identity($id, $roles, array(‚nick‘ ⇒ ‚pepazdepa‘));

a v latte pak:

$user->identity->nick

TomasHuttner
Člen | 66
+
0
-

Díky za radu uz mi to jde

Šaman
Člen | 2666
+
0
-

Tohle se mi moc neosvědčilo. Pokud se například přihlašuješ emailovou adresou a můžeš si tedy měnit nick, tak po změně se to v tvém výpisu neprojeví, protože v identitě máš stálo to, cos nastavil při přihlášení. Já v těch datech nemám raději nic, resp. časem jsem si tam uložil nick a pole rolí, ale jen pro potřeby ladění, protože je pak v debugBaru vidět základní info o přihlášeném. Všechno, co chci zobrazit, načítám z databáze – tam jsou platná data.
P.S. Totéž platí o rolích. Pokud by přihlášenému uživateli admin změnil roli, tak se změna projeví až po novém přihlášení, což může nastat až za dlouhou dobu (klidně měsíce, pokud je uživatel přihlásen trvale). Identita se totiž udržuje v session.

Jiří Nápravník
Člen | 710
+
0
-

Šaman: to se pak při každém requestu ptáš databáze, na nick, který svítí na každé stránce? Podle mě tohle řeší, když může změnit nick uživatel či nějaká další data refresh po uložení změn (předpokládám, že to v nette jde, v jiném frameworku jsem to tak řešil).

Pokud může změnit data administrátor, tak souhlasím to je celkem problém, snad jedine třeba refresh té session každých pět minut u uživatele…

David Matějka
Moderator | 6445
+
0
-

ja pouzivam upravenou identitu a userstorage, ze je pri kazdem nacteni identita cerstva. inspirace treba tady nebo treba majklova identita