Problém s odhlášením, společný AuthPresenter

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

Zdravím,
mám 2 otázky
Mám v BasePresenteru tento klasicky kod na odhlášení

public function actionLogout()
	{
		Environment::getUser()->signOut();
		$this->flashMessage('Byl jsi odhlášen.');
        $this->redirect('homepage:');
	}

ale chtěl bych se redirectnout na tu samou stránku kde jsem klikl na odhlásit, zkoušel jsem i přidat restoreRequest, ale s ním mi to taky nešlo, vyzkoušel jsem i this, což zase udělalo smyčku při přesměrování a nenapadá mě další způsob, to je první dotaz

a druhý:
Mám 2 moduly fronted a backend a chtěl bych pro ně společnou autentizaci abych ji nemusel vytvářet 2×. Nenapadá mě kam dát jaké soubory a co do nich, jestli dát AuthPresenter třeba do samostatného modulu nebo ke globálním presenterum a jak to vubec vymyslet, tak bych ocenil nějaké nastínění od profíků

díky

sodae
Nette Evangelist | 250
+
0
-
  1. ve tvém připadě mě napadá že by signal (handleLogout) by byl v poho
  2. osobně ho dávám do front ale je otázka zda bude web jen pro administrátory tedy do backend a nebo i pro uživatele frontend, ale ostatně je to na tobě
Ondřej Mirtes
Člen | 1536
+
0
-

Pro odhlášení: handleLogout v BasePresenteru a $this->redirect('this');

Autentizace: Autentifikační třídu máš vždy jen jednu a kam umístíš přihlašovací formulář je na tobě – klidně bych udělal jeden na homepage backendu a jeden třeba do layoutu frontendu (to je pár řádků, zbytek – autentifikace – je sdílený), jak to bývá. Jak se uživatel přihlásí v jedné části, je automaticky přihlášený i v druhé. Jak pořešíš oprávnění (aby jakýkoli přihlášený uživatel se ti nedostal do backendu) je na tobě, Nette nabízí šikovnou třídu Permission.