find($userid, $user)) { throw new Zend_Exception(); } $storage = new Zend_Session_Namespace('userSettings'); $storage->user = $user->id; Zend_Session::rememberMe(); } static public function logout() { $storage = new Zend_Session_Namespace('userSettings'); unset($storage->user); Zend_Session::rememberMe(); } static public function user() { $storage = new Zend_Session_Namespace('userSettings'); $id = $storage->user; if (!isset($id)) { return null; } if (isset (self::$cache[$id])) { return self::$cache[$id]; } $userMapper = new Syj_Model_UserMapper(); $user = new Syj_Model_User(); if ($userMapper->find($id, $user)) { self::$cache[$id] = $user; return $user; } else { self::logout(); 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)); } }