Authentifikace uživatelů z neon a databáze

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

Dobrý den,
chtěl bych vytvořit přihlášení uživatelů z databáze. Ale v config.neon bych chtěl mít také definovaného něco jako superuser (může jich být i víc).

V config.neon:

security:
	users:
		admin: password

Nevím ale jak vytvořit vlastní Authenticator, který bude mít jak přístup k db, tak k uživatelům definovaným v neonu.

Něco jako:

class MyAuthenticator extends \Nette\Object implements \Nette\Security\IAuthenticator
{
	private $db;
	private $superusers;

	public function __construct ( array $superusers, \Nette\Database\Context $db ) {
		$this->superusers = $superusers;
		$this->db = $db;
	}

Problém je vtom že pokud mám definováno v neonu „security:“. Již nemohu přidat novou službu authenticator: MyAuthenticator. Protože to nadává že již jeden Authenticator mám.

Jak tedy vytvořit nový authenticator, který bude mít přístup k neon uživatelům, i k db?

Za jakoukoliv radu děkuji.

David Matějka
Moderator | 6445
+
0
-

A nebude lepsi si do databaze dat sloupecek „superuser“ s hodnotou 0/1?
K nette/security/users v neonu nepristoupis, dej si to pod parameters

jEhLa
Člen | 70
+
0
-

matej21 napsal(a):

A nebude lepsi si do databaze dat sloupecek „superuser“ s hodnotou 0/1?
K nette/security/users v neonu nepristoupis, dej si to pod parameters

Právě že ne, chci mít přístup k nastavení hlavního uživatele přímo z nastavení aplikace a né ho hledat někde v db, kde chci mít opravdu pouze registrované uživatele.
Z parameters je brat mě už také napadlo, ale myslel jsem že by to šlo řešit i jinak.

David Grudl
Nette Core | 8218
+
0
-

V configu je možné nastavovat role, místo hesla se tam da dvojice [password: xxxx, role: yyy].

Ale tusim to funguje az od verze 2.2.

David Matějka
Moderator | 6445
+
0
-

@David Grudl: to uz je myslim i v 2.1, ale otazka se tykala kombinace autentifikace proti databazi a soucasne proti pevne konfiguraci v neonu, takze to nic neresi :)

jEhLa
Člen | 70
+
0
-

Děkuji za rady.
Verzi mám 2.1.2. Ale opravdu řeším jen jak spojit tyto dvě ověření. Chtěl jsem zachovat původní zápis uživatelů v neonu jen s výměnou authenticátoru. Momentálně to mám tedy funkční přes parametry v neonu. Ale původní zápis by byl podle mě přece jen lepší.

David Matějka
Moderator | 6445
+
0
-

Ale původní zápis by byl podle mě přece jen lepší.

Nebyl. Sekce nette v neonu je pro NetteExtension, ktere dle nej vytvari a konfiguruje sluzby. Takze kdyby to bylo v te sekci, tak by to zbytecne vytvarelo ten SimpleAuthenticator. K tomu nastaveni v sekci nette by se nechalo dostat pres vlastni compiler extension, ale to uz by bylo velke hackovani. Kdyby sis udelal vlastni compiler extension, bylo by lepsi to nastaveni hodit do prislusne konfiguracni sekce toho extension. Ale pokud uvadis konfiguraci, ktera bude pouzita pro nakonfigurovani sluzeb v neonu, je na to sekce parameters idealni

Editoval matej21 (27. 5. 2014 23:04)

jEhLa
Člen | 70
+
0
-

Aha, pokud je to tedy takhle. Tak vtom případě je zápis do parameters asi opravdu lepší.

Děkuji za rady a vysvětlení.