Jak jednoduše nahradit Nette\Security\User vlastní třídou?

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

Zdravím, potřebuju si napsat vlastní implementaci Authorizatoru a k tomu tím pádem i Nette\Security\User (potřebuju změnit volání isAllowed). Dá se nějak jednoduše (config?) změnit třída, která se použije při vytváření? (nejspíš jen podědím Nette Usera a změním / přidám pár metod).

Případně existuje nějaké jiné (lepší) řešení mého problému (nechci si všude předávat authorizator)?

Azathoth
Člen | 495
+
0
-

Nevím o tom, že by šlo nějak snadno udělat vlastní implementaci usera, ale pokud se nemýlím, tak když zaregistruješ authorizator jako service, tak ho získáš pomocí DI velmi snadno a není třeba jej předávat.

David Kudera
Člen | 455
+
+3
-

Stačí podědit a v configu změnit třídu služby user

services:

	user:
		class: App\MyCustomUser

Editoval David Kudera (15. 8. 2014 19:30)

sparky
Člen | 5
+
0
-

Toto sem udělal a Tracy řve

Service ‚security.user‘: Service of type Nette\Security\User needed by Nette\Bridges\SecurityTracy\UserPanel::__construct() not found. Did you register it in configuration file?

nette 2.3.0

Oli
Člen | 1215
+
0
-

No a dědí tvůj user od \Nette\Security\User?

Filip Procházka
Moderator | 4668
+
0
-

Služba se v Nette 2.3 už asi nejmenuje user, ale security.user, jinak je to stejně jak píše David.