]> dev.renevier.net Git - syj.git/blobdiff - application/controllers/helpers/SyjSession.php
interface to manage list of created routes
[syj.git] / application / controllers / helpers / SyjSession.php
index 702bfa25c739c0923f024ecc3151852c8adf9027..11c369fb34fa7f5cf85c6fa085ad1f5ca4519316 100644 (file)
@@ -53,4 +53,26 @@ 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 = implode('/', array_map('urlencode', explode('/', $request->getRequestUri())));
+        $loginurl = $view->addParamToUrl($view->baseUrl() . '/' . 'login', 'redirect', $encodeduri);
+        $translator = Zend_Registry::get('Zend_Translate');
+        $lang = $request->getQuery('lang');
+        if ($lang) {
+            $adapter = $translator->getAdapter();
+            if ($adapter->isAvailable($lang)) {
+                $loginurl = $view->addParamToUrl($loginurl, 'lang', $lang);
+            }
+        }
+        $this->getActionController()->getHelper('Redirector')->gotoURL($loginurl, array('prependBase' => false));
+    }
 }