Magie v přihlašovacím formuláři / validace

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

Dobrý den,

rád bych se zeptal, jak vlastně nette zjišťuje tabulku s uživateli. Mám metodu na přihlašování, která funguje bez potíží (až na problém níže). Jen nevím, jak si vlastně nette zjišťuje, z jaké tabulky má data brát. Sám si skenuje, který sloupec odpovídá klíčům? Viz. níže:

	public function loginProcess(Form $form)
	{

		$values = $form->getValues();
		if ($values->remember) {
			$this->presenter->getUser()->setExpiration('+ 14 days', false);
		} else {
			$this->presenter->getUser()->setExpiration('+ 20 minutes', true);
		}

		try {
			$this->presenter->getUser()->login($values->email, $values->password); // z jaké tabulky si vlastně bere data?
			$this->flashMessage('Byli jste uspěšně přihlášení, děkujeme!', 'flash__success');

		} catch (AuthenticationException $error) {
			$this->flashMessage($error->getMessage(), 'flash__warning');
		}

		if ($this->presenter->isAjax()) {
			$this->redrawControl('login');
		} else {
			$this->redirect('this');
		}
	}

Dále bych měl prosbu, jak dostat do flashMessage chybu z formuláře. V kódu níže chybu do flashky zobrazím podle Exception, rád bych si volal medotu ($form->onSuccess[]), která by vyrenderovala chyby. Něco jako:

$form->onError[] = [$this, 'registerError'];
	public function registerError(Form $form)
	{
		$this->flashMessage($form->getErrors()); // -> nefunguje, po dumpnutí se chyby vykreslí
		if ($this->presenter->isAjax()) {
			$this->redrawControl('registration');
		} else {
			$this->redirect('this');
		}
	}

V šabloně mám:

<ul class=error n:if="$form->errors">
    <li n:foreach="$form->errors as $error">{$error}</li>
</ul>

Děkuji

F.Vesely
Člen | 368
+
0
-

Zadna magie, musis si napsat Authenticator, vice viz dokumentace https://doc.nette.org/…thentication

getErros() vraci pole, budes ho muset proiterovat a vlozit do flashMessage kazdou chybu zvlast.

Dan Hundrt
Člen | 74
+
0
-

Ok, díky za info. Ted jsem vycetl, ze Auth. bere by default data z tabulky user, proto je safe, zadna magie :-).

Díky