Zobrazenie pre prihlásených, aj neprihlásených

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

Rád by som prístup k niektorým presenterom obmedzil pre prihlásených používateľov, a k niektorým nie. Mám nasledovnú situáciu:

<?php
	// BasePresenter.php
	public function beforeRender() {
		if (!$this->getUser()->isLoggedIn()) {
			$this->redirect(':Login:');
		}
	}
?>
<?php
	// bootstrap.php
	$router = $application->getRouter();

	$router[] = new Route('index.php', array(
		'presenter' => 'Homepage',
		'action' => 'default',
	), Route::ONE_WAY);

	$router[] = new Route('kniznica', array(
		'presenter' => 'Library',
		'action' => 'default',
	));

	$router[] = new Route('logout', array(
		'presenter' => 'Login',
		'action' => 'logout',
	));

	$router[] = new Route('<presenter>/<action>/<id>', array(
		'presenter' => 'Homepage',
		'action' => 'default',
		'id' => NULL,
	));
?>

a ešte LibraryPresenter (ktorý nededí od BasePresenter-u).

Problém je, že /path/to/app/kniznica/ zobrazí /path/to/app/login/. Robím kontrolu prihlásenia správne? Alebo mám problém v definíci route? Budem musieť spraviť „výhybku“ do BasePresenter-u a kontrolovať „prihlásenosť“ len pre vybrané presentery?

Vďaka!

Editoval ezimir (8. 12. 2010 2:40)

mcmatak
Člen | 504
+
0
-

asi bych prihlaseni resil už ve startupu a pak nejde vytvořit BasePresenter a BaseSecurePresenter?

tam kde potřebuješ přihlášení tak poděď od Secure a jinak přímo od Base?

westrem
Člen | 398
+
0
-

Sprav to tak ako pise mcmatak.

Budes mat zabezpeceny a nezabezpeceny BasePresenter. Kontrolu prihlasovania ries uz v startup metode – nezabudni vsak volat parent::startup() ;)

ezimir
Člen | 21
+
0
-

Vďaka!

Ono ten problém bol tento:

Cannot load presenter ‚Library‘, class ‚LibraryPresenter‘ is not IPresenter implementor.

Len sa prejavil presmerovaním na login, nie error hláškou (po prihlásení a zobrazení daného presenteru to už chybu vypísalo).