Přesměrování přihlášeného uživatele po znovu zobrazení formuláře pro přihlášení

- Zdeno1981
 - Člen | 116
 
Zdravím,
mám klasický přihlašovací presenter jaký je v distribuci
nette/examples
Jde mi o to, že když se přihlásím a po přesměrování zadám opět adresu pro přihlášení tak se zase objeví formulář i když jsem přihlášen.
Pokusil jsem se tedy o něco takového
    protected function startup() {
        parent::startup();
        //dump($this->user->isLoggedIn());
        if($this->user->isLoggedIn() == TRUE) {
            $this->redirect(':Admin:Dashboard:');
        }
    }
což funguje, a když jsem přihlášený tak mě to rovnou hodí do administrace, ale problém je že když se chci odhlásit, tak se provede přesměrování, ale zůstávám nadále přihlášený v administraci.
Dokáže někdo poradit v čem je háček?
Editoval Zdeno1981 (30. 3. 2012 13:59)

- Zdeno1981
 - Člen | 116
 
Přiložím tedy přímo můj SignPresenter, v kterém jsem dodal tu část kódu kterou jsem zde uvedl:
<?php
namespace AdminModule;
use Nette\Application\UI,
    Nette\Security as NS;
class SignPresenter extends \BasePresenter {
    /** @persistent */
    public $backlink = '';
    protected function startup() {
        parent::startup();
        //dump($this->user->isLoggedIn());
        if ($this->user->isLoggedIn() == TRUE) {
            $this->redirect(':Admin:Dashboard:');
        }
    }
    /**
     * Formulář pro přihlášení uživatele
     * @return \Nette\Application\UI\Form
     */
    protected function createComponentSignInForm() {
        $form = new UI\Form;
        $form->addText('username', 'Jméno uživatele:')
                ->setRequired('Zdejte jméno uživatele.');
        $form->addPassword('password', 'Heslo:')
                ->setRequired('Zadejte heslo.');
        $form->addSubmit('send', 'Přihlásit se');
        $form->onSuccess[] = callback($this, 'processForm');
        return $form;
    }
    /**
     * Zpracování formuláře
     * @param $form
     */
    public function processForm($form) {
        try {
            $values = $form->getValues();
            $this->user->login($values->username, $values->password);
            $this->restoreRequest($this->backlink);
            $this->redirect(':Admin:Dashboard:');
        } catch (NS\AuthenticationException $e) {
            $form->addError($e->getMessage());
        }
    }
    // Odhlášení uživatele
    public function actionOut() {
        $this->getUser()->logout();
        $this->flashMessage('Byl/a jste odhlášen/a.');
        $this->redirect('in');
    }
}
je to identické až na tu část co jsem tam přidal a namespace, připadá mi to jako by se nestihla zrušit identita uživatele, a po odhlášení když dojde k redirectu na ten formulář se opět přesměruje do administrace a jsem pořád přihlašený…

- ViPEr*CZ*
 - Člen | 822
 
if ($this->user->isLoggedIn() == TRUE) {
  $this->redirect(':Admin:Dashboard:');
}
Jestli se nepletu tak todle se provede ještě než to vleze sem actionOut() { … proto bych tam vypustil v podmínce tudle akci ještě.
if ($this->user->isLoggedIn() == TRUE && $this->getAction() != "out") {
https://doc.nette.org/…n/presenters#…
Editoval ViPEr*CZ* (30. 3. 2012 15:03)