X-Git-Url: https://dev.renevier.net/?a=blobdiff_plain;f=application%2Fcontrollers%2Fhelpers%2FSyjSession.php;h=06949f0c68d44537b6e1b5598b9d50491d8d5884;hb=627f937d7241dc4b9311759fa446c3738d05f5a9;hp=702bfa25c739c0923f024ecc3151852c8adf9027;hpb=05ce9238adfa982746bfc6211b240fd24526af09;p=syj.git diff --git a/application/controllers/helpers/SyjSession.php b/application/controllers/helpers/SyjSession.php index 702bfa2..06949f0 100644 --- a/application/controllers/helpers/SyjSession.php +++ b/application/controllers/helpers/SyjSession.php @@ -13,29 +13,20 @@ class Syj_Controller_Action_Helper_SyjSession extends Zend_Controller_Action_Hel throw new Zend_Exception(); } - $storage = Zend_Auth::getInstance()->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)); + } }