Rozdílný presenter podle přihlášení uživatele

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

Zdravím,
chtěl bych mít na webu přihlašování. Jakmile by se uživatel přihlásil, tak by se mu místo původní stránky s přihlašovacím formulářem zobrazila stránka pro přihlášené.
Chtěl bych, aby se stránka pro nepřihlášené a stránka pro přihlášené generovaly pomocí různých presenterů. Tzn. by se muselo nejdřív ověřit, zda je uživatel přihlášen a pak vybrat příslušný presenter.

Existuje na to nějaké efektivní řešení?
Díky :)

Jirda
Člen | 103
+
0
-

vcernik napsal(a):

Zdravím,
chtěl bych mít na webu přihlašování. Jakmile by se uživatel přihlásil, tak by se mu místo původní stránky s přihlašovacím formulářem zobrazila stránka pro přihlášené.
Chtěl bych, aby se stránka pro nepřihlášené a stránka pro přihlášené generovaly pomocí různých presenterů. Tzn. by se muselo nejdřív ověřit, zda je uživatel přihlášen a pak vybrat příslušný presenter.

Existuje na to nějaké efektivní řešení?
Díky :)

Tak pokud se uzivatel prihlasi, tak bude vzdy presmerovan na presenter, ktery je jen pro prihlasene. Takze zavolanim redirectu se urci jen dany presenter.

Ta druha cast tvyho prispevku, nevim, zda jsem to spravne pochopil, ale hadam, ze ti jde o to, ze pokud prijde prihlaseny uzivatel na web, chces aby se mu zobrazil prihlaseny presenter a pokud prihlaseny neni, tak naopak ten „neprihlaseny“. Zkusil bych treba v BasePresenteru ve startupu sledovat, zda je uzivatel prihlaseny nebo neni a podle presenteru, kde se nachazi ho presmerovat na ten spravny.

Ale uprimne, v te druhe casti ti prilis nerozumim, takze jen hadam ideu.

Editoval Jirda (16. 7. 2012 10:27)

Jan Endel
Člen | 1016
+
0
-

Podívej se do examples CD-collection, tam je krásně řešené přihlašování i pomocí backlinků.

vcernik
Člen | 32
+
0
-

OK, omlouvám se, vysvětlil jsem to asi špatně..

Praktický příklad:
Když nejste přihlášeni na Facebooku, přijdete na www.facebook.com, tak se otevře stránka s registračním formulářem apod. Pokud přihlášeni jste a přijdete na www.facebook.com, tak se otevře stránka s příspěvky přátel apod.
Chtěl bych, aby se po přístupu na adresu www.example.com rozhodlo který presenter se spustí – zda pro přihlášené nebo pro nepřihlášené. Bez přesměrování apod. Přihlašování vyřešené mám, jde mi o to, jestli je možné na stejné adrese spouštět jiné presentery v závislosti na přihlášení uživatele.

bazo
Člen | 620
+
0
-

mozes si v bottstrape predefinovat routy na zaklade toho, ci je uzivatel prihlaseny

if($container->user->isLoggedIn())
{
	$router[] = new Route(adresa, array(presenter => home))
}
else
{
	$router[] = new Route(adresa, array(presenter => login))
}
jtousek
Člen | 951
+
0
-

Routy bych zcela určitě nepodmínkoval, raději bych přesměroval pomocí forward – ten nezmění URL.

vcernik
Člen | 32
+
0
-

Díky za odpovědi :)

Můžu se jen zeptat principiálně – co špatného je na tom podmínkování rout? Nějak vnitřně cítím, že to asi úplně není ono, i když je to poměrně jednoduché. Ale nevím, jaký konkrétní problém by to přineslo.

Ještě jednou díky! :)

jtousek
Člen | 951
+
0
-

Routy vnímám jako jakousi neměnnou, pevnou část aplikace, která je prostě daná a za všech okolností stejná. Zatím jsem nezažil případ kdy by podmínkování rout bylo nezbytné a vlastně mě ani nikdy nenapadlo to použít. O žádném vysloveně problému který by to přineslo nevím, jen mi to principiálně nepřijde úplně v pořádku.

Je to ale jen můj osobní názor, který nikomu nevnucuji a který není nutně správný. ;-)

vcernik
Člen | 32
+
0
-

Tak už mi nastalo pár problémů převážně během procesu přihlašování/odhlašování.. Takže vyřešeno forwardem :) Dík