Autentizace – omezení přístupu nepřihlášeným
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- grogy
- Člen | 147
Vložil bych jej do BasePresenteru administrace (pokud se jedná o administaci, pokud ne, tak prostě do BasePresenteru, který pak dědíš pro další Presentery v systému, kam chceš zamezit přístup bez přihlášení.
Samotnou kontrolu do startupu, a s tím, že pokud je nepřihlášen, tak ho přesměruješ třeba na logování (tady modul Admin, presenter podle tebe, action prihlaseni).
abstract class BaseAdminPresenter extends BasePresenter
{
protected function startup()
{
parent::startup();
// overeni uzivatelu
$user = Environment::getUser();
if (!$user->isAuthenticated()) {
$this->redirect(':Admin:LoginFormPresenter:prihlaseni');
}
}
}
- Ondřej Mirtes
- Člen | 1536
abstract class BaseAdminPresenter extends BasePresenter
{
protected function startup()
{
parent::startup();
// overeni uzivatelu
$user = Environment::getUser();
if ($this->name != ":Admin:LoginFormPresenter" && !$user->isAuthenticated()) {
$this->redirect(':Admin:LoginFormPresenter:prihlaseni');
}
}
}
- EL
- Člen | 17
nějak to nic neudělalo
protected function startup()
{
parent::startup();
$this->model = new Model;
// overeni uzivatelu
$user = Environment::getUser();
if ($this->name != "LoginForm" && !$user->isAuthenticated()) {
$this->flashMessage('Nepovolený přístup! Nejdříve se musíte přihlásit.');
$this->redirect('LoginForm:');
}
}
- David Grudl
- Nette Core | 8228
Místo $this->name != "LoginForm"
je vhodnější
!($this instanceof LoginFormPresenter)