Automatické odhlášení uživatele

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

Čaute,
heleďte řeším menší problém. K věci, řešim automatické odhlašování viz příklad z HomepagePresenter.php:

<?php
	protected function startup()
	{
	    parent::startup();

	    if (!$this->getUser()->isLoggedIn()) {
		if ($this->user->getLogoutReason() === User::INACTIVITY) {
		    $this->flashMessage('Byli jste automaticky odhlášeni - neaktivita.', 'infos');
		}
		$this->redirect('Sign:Default');
	    }
	}
?>

Jak ale docílit toho, abych pro každý presenter nemusel psát (kopírovat) funkci startup? Příjde mi to neestetické. Ale když se kód vloží do BasePresenteru tak se vytvoří smyčka v přesměrování, což je logické.

Grelek
Člen | 233
+
0
-

Tak SignPresenter nemusí dědit od BasePresenter ale třeba od SecuredPresenter nebo Nette\Application\UI\Presenter a startup si můžeš vesele nechat v BasePresenter.

Martin Kubiš
Člen | 2
+
0
-

Grelek napsal(a):

Tak SignPresenter nemusí dědit od BasePresenter ale třeba od SecuredPresenter nebo Nette\Application\UI\Presenter a startup si můžeš vesele nechat v BasePresenter.

Jak triviální, díky! Ještě jeden dotaz, když se nastaví při přihlašování:

<?php
	$user->setExpiration('+ 20 minutes', TRUE);
?>

Tak mě to prostě po dvaceti minutách ať už nečinnosti nebo usilovnýho klikání odhlásí, ne? Obnova tý sessiony se provede stejně, zase přes setExpiration?

Badaboom
Člen | 33
+
0
-

Ne, fixní expirace v Nette afaik není. Druhý parametr slouží k nastavení odhlašování při zavření prohlížeče, viz API.

Editoval Badaboom (30. 7. 2013 0:11)