Po Exception a ladicke v autorizovanej casti aplikacie dojde k odhlaseniu

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

PHP: 5.3.2
Nette: 545cfbd06e5b4a611a5071301284311f3edfb4f9 (Thu Sep 2 04:44:49 2010 +0200)

Zdravim pani.

Pracujem s poslednym Nette priamo z GitHub a uz nejaky cas mam problem s autentizaciou uzivatela. Ak aplikacia vyhodi vynimku, dochadza k odhlaseniu uzivatela a po refresh/reload sa musim znovu do aplikacie prihlasit.

Uprimne povedane, nepamatam si, ci toto chovanie bolo vzdy, alebo je to nejaka zmena, ale skor sa mi zda, ze toto vzdy takto nefungovalo. Po odstraneni problemu stacilo reloadnut web a pokracoval som dalej prihlaseny v aplikacii na tom mieste, kde som skoncil.

Teraz je to velmi neprijemne, lebo po Exception sa musim znovu prihlasit a ked je problemovy bod hlbsie v aplikacii, vyvoj sa mi neprijemne predlzuje.

Editoval edke (2. 9. 2010 14:11)

Majkl578
Moderator | 1364
+
0
-

Také jsem si toho všiml.

David Grudl
Nette Core | 8218
+
0
-

Nikdy jsem na to nenarazil, můžete ten problém lokalizovat?

edke
Člen | 198
+
0
-

David Grudl wrote:

Nikdy jsem na to nenarazil, můžete ten problém lokalizovat?

No konecne som prisiel nato, kde je problem. Davam dokopy firemny skeleton a nedalo mi tam pozerat na tie „hačky“, ktorymi som to obchadazal. Ale k veci:

V prvom rade som nemal v bootstrap-e service a v BasePresenter-i som prepisoval getUser():

public function getUser() {
	if (!$this->user) {
	    $this->user = new User();
	}
	return $this->user;
}

V bootstrap-e teraz mam:

; services
service.Nette-Web-IUser = Base\User

a Base\User vyzera takto:

class User extends \Nette\Web\User {

    public function __construct() {

	# basic settings
	//$this->setNamespace('Desktop');
	$this->setExpiration('+ 1 day', false);

	# authentication
	$this->setAuthenticationHandler(new Authenticator());

	# authorization
	$this->setAuthorizationHandler(new Acl());
    }

}

Teraz to uz funguje, a User aj session prezije aj vyhodenie exception.

Len teraz spekulujem, ako nastavim rozne User triedy ak by som napriklad chcel rozlisne instancie Authenticator a AuthorizationHandler pre rozne moduly (napriklad Backend a Frontend).

Editoval edke (16. 12. 2010 15:36)