Po Exception a ladicke v autorizovanej casti aplikacie dojde k odhlaseniu
- edke
- Člen | 198
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)
- edke
- Člen | 198
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)