Service of type Nette\Security\User not found, mám vlastní service „user“, vlastní řešení security

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

Měl bych udělat alias? pravděpodobně tato chyba vzniká ve chvíli, kdy vytvářím šablonu a tam volá presenter tento service, aby mi uživatele přidal do šablony, ale já si uživatele vytvářím sám takto

<?php

		user:
			factory: [@model, createServiceSessionUser]



	public function createServiceSessionUser()
	{
		$user = new System\Security\SessionUser($this->context);
		$user->setExpiration('+ 1 days');
		return $user;
	}

?>

jak bych to měl řešit? udělat alias?

Filip Procházka
Moderator | 4668
+
0
-

Alias ti nepomůže, Nette hledá podle třídy. Správně by jsi měl Nette\Security\User podědit.

mcmatak
Člen | 504
+
0
-

to nechci moje je jine, nebo mozna by to slo ale nic nemeni na tom ze hleda tuhle service myslim tim nazev teto service, a to ja nechci, moje service se jmenuje „user“ ani nevim jak to udelat aby service byla s temi lomitky

ha chápu, on hledá mezi připojenými services, která dědí nette usera, hmmm a nejde to obejít?

Editoval mcmatak (13. 1. 2012 17:22)

Filip Procházka
Moderator | 4668
+
0
-

Trochu se stydím, že ti to radím…

$this->contex->classes['nette\security\user'] = 'user';
mcmatak
Člen | 504
+
0
-

byl sem rychlejsi všechno jsem kompletně přepsal teď testuju jestli to tak bude fungovat :) ale díky

mcmatak
Člen | 504
+
0
-
<?php


	/** @var IUserStorage Session storage for current user */
	private $storage;

	/** @var IAuthenticator */
	private $authenticator;

	/** @var IAuthorizator */
	private $authorizator;

	/** @var Nette\DI\IContainer */
	private $context;



?>

takže podědit user nejde? a vlastní si napsat taky nejde? co teď?

Filip Procházka
Moderator | 4668
+
0
-

Podědit user jde.