Kdy přesně získává User identitu v rámci lifecycle zpracování requestu?

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

Ahoj, pokud si předám do služby klasicky v neon konfiguraci instanci Nette\Security\User např.
mojeSluzba: mojeSluzba(@user)
tak pokud chci v jejím konstruktoru přistoupit k identitě, tak ještě není dostupná

class mojeSluzba{
	function __construct($user){
		// $user->getIdentity() => NULL
	}
}

pokud však službu použiju později (např. v presenteru), tak identita už dostupná je

class mojeSluzba{
	private $user;

	function __construct($user){
		$this->user = $user;
	}

	public function getIdentity()
	{
		return $this->user->getIdentity(); // vrati spravne identitu
	}
}

Chápu, že identita se tvoří z dat v session, ovšem není mi jasné dané chování, session je dostupná přece už v momentě sestavovaní DI kontejneru a tak by se měla identita správně zobrazit, co dělám špatně?

Díky

Editoval crempa (18. 2. 2015 14:55)

David Matějka
Moderator | 6445
+
+1
-

Nepouzivas nahodou u UserStorage namespace ?

crempa
Člen | 198
+
0
-

Mas pravdu, diky za nakopnuti,namespace jsem pouzival ale nastavoval se az v ramci startupu base presenteru.
Resenim je nastavit namespace uz pri tvorbe sluzeb v DI kontejneru, tedy cca takto nejak:

services:
	nette.userStorage:
		setup:
			- setNamespace("my_namespace")