Vymazání příznaku reason inactivity
- Petr Daňa
- Člen | 109
Jak správně vynulovat příznak odhlášení, který se získává pomocí User->getLogoutReason()? Mám konkrétní situaci, kdy ve startupu BasePresenteru kontroluju, zda nedošlo k odhlášení z důvodu neaktivity:
<?php
if ($user->getLogoutReason() === NUser::INACTIVITY)
{
$this->flashMessage($this->translator->_('login.err_odhlaseni_neaktivita'), 'error');
$this->redirect('Login:default');
}
?>
Pokud se po přesměrování na login stránku uživatel opět přihlásí, je to v pohodě. Pokud ale půjde na stránku, která nepotřebuje přihlášení, pořád má v session ten příznak reason == NUser::INACTIVITY. Chtělo by to tedy ve výše uvedené podmínce tento příznak vymazat, ale nikde jsem nenašel, jak to udělat. Musím provést před redirectem logout? Tj.:
<?php
NEnvironment::getUser()->logout(TRUE);
?>
nebo se na to jde jinak?
- westrem
- Člen | 398
Petr Daňa napsal(a):
To by asi šlo, ale nepřijde mi to moc systémové, vzledem k tomu, že reason je zakopaná uvnitř User třídy. Momentálně mi přijde čistější zavolat tu logout metodu, jak jsem psal v příspěvku. Pokud je ale nějaká vhodnější systémová možnost, sem s ní :-)
No kedze ten reason je naozaj zakopany v Session pod roznym NS, tak jedine ciste riesenie je to co si sam napisal, vymazat aj identitu.
Inac, len tak zo zvedavosti, ak mas stranky, ktore nevyzaduju prihlasenie,
preco v BasePresenteri kontrolujes to prihlasenie?
Ja to robim tak, ze mam specialny SecurePresneter, ktory dedi od BasePresenteru
ale vo svojom startupe kontroluje prihlasenie a tento SecurePresenter pouzivam
vsade tam kde je potrebne aby bol clovek prihlaseny.
Takto mas pekne presenter pre obycajne stranky a jeden „secured“ nad nim, pre tie ktore smu vidiet len autentizovany ludia.
Toto mi pride ako cistejsie „objektove“ riesenie ;)