X-Git-Url: https://dev.renevier.net/?a=blobdiff_plain;f=application%2Fcontrollers%2Fhelpers%2FSyjSession.php;h=3289f679d9a963d436b468540af064d8f55b4f6f;hb=1f6105289a49079809c2a4677b561bc82c62db88;hp=702bfa25c739c0923f024ecc3151852c8adf9027;hpb=05ce9238adfa982746bfc6211b240fd24526af09;p=syj.git diff --git a/application/controllers/helpers/SyjSession.php b/application/controllers/helpers/SyjSession.php index 702bfa2..3289f67 100644 --- a/application/controllers/helpers/SyjSession.php +++ b/application/controllers/helpers/SyjSession.php @@ -1,5 +1,5 @@ getStorage(); - $storage->clear(); - $storage->write(array('user' => $user->id)); - Zend_Session::rememberMe(); // zend default expiration delay is 2 weeks. Ok, use that value + $storage = new Zend_Session_Namespace('userSettings'); + $storage->user = $user->id; + Zend_Session::rememberMe(); } static public function logout() { - Zend_Session::start(); - Zend_Session::destroy(); + $storage = new Zend_Session_Namespace('userSettings'); + unset($storage->user); + Zend_Session::rememberMe(); } static public function user() { - try { - $sessionStorage = Zend_Auth::getInstance()->getStorage(); - } catch(Exception $e) { - return null; - } - $sessionData = $sessionStorage->read(); - if ($sessionStorage->isEmpty()) { - return null; - } - - $id = $sessionData['user']; + $storage = new Zend_Session_Namespace('userSettings'); + $id = $storage->user; if (!isset($id)) { return null; } @@ -53,4 +44,19 @@ class Syj_Controller_Action_Helper_SyjSession extends Zend_Controller_Action_Hel return null; } } + + public function needsLogin() { + $user = self::user(); + if ($user) { + return; + } + $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); + $view = $viewRenderer->view; + $request = $this->getRequest(); + + $encodeduri = $view->UriPath(true); + $loginurl = $view->addParamToUrl($view->baseUrl() . '/' . 'login', 'redirect', $encodeduri); + $translator = Zend_Registry::get('Zend_Translate'); + $this->getActionController()->getHelper('Redirector')->gotoURL($loginurl, array('prependBase' => false)); + } }