<?php
-/* This file is part of Syj, Copyright (c) 2010 Arnaud Renevier,
+/* This file is part of Syj, Copyright (c) 2010-2011 Arnaud Renevier,
and is published under the AGPL license. */
class Syj_Controller_Action_Helper_SyjSession extends Zend_Controller_Action_Helper_Abstract
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;
}
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));
+ }
}