Rozne IAuthorizatory pre frontend a backend

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

Ahojte chalani,

riešim oddelovanie loginov pre frontend a pre backend.

Rozdelna bude aj metoda „authenticate“ a preto mám dve triedy:

<?php
class FrontendAuthentication extends Nette\Object implements IAuthenticator {}
class BackendAuthentication extends Nette\Object implements IAuthenticator {}
?>

Samozrejme pri tvorení containeru na mna vyleti ServiceCreationException. Otázkou je, ako nejako elegantne povedať a kde, že ked sa logujem z frontendu použi FrontendAuthentication a ked z backendu tak BackendAuthentication.

Ďakujem! .)

Editoval iNviNho (21. 1. 2017 15:40)

Jan Tvrdík
Nette guru | 2595
+
+1
-

Máš Nette 2.4?

iNviNho
Člen | 352
+
0
-

@JanTvrdík áno

Editoval iNviNho (21. 1. 2017 15:47)

Jan Tvrdík
Nette guru | 2595
+
0
-

@JanTvrdík Pak by mělo stačit v config.neon pro obě ty služby nastavit autowired: self a nepoužívat Nette\Security\User

iNviNho
Člen | 352
+
0
-

Čiže nepoužívať Usera a ak nastavím autowired: self, tak potom vytvorené služby dosadzovať ručne v neone?
Čiže je vlastne autowired: self to isté ako autowired: no?

Editoval iNviNho (21. 1. 2017 16:02)

Jan Tvrdík
Nette guru | 2595
+
+3
-

autowired: self nezakáže autowiring, ale třída musí vyžadovat přímo FrontendAuthentication, pokud bude vyžadovat IAuthorizator, tak to nebude automaticky fungovat.