]> dev.renevier.net Git - syj.git/blobdiff - application/controllers/LoginController.php
cache js, css and png files
[syj.git] / application / controllers / LoginController.php
index 495c27c408b38939ddc861047cd75be9ca0c5d3f..152d18828a13adb44c88f5c71fe3ba58eb986b3c 100644 (file)
@@ -1,16 +1,13 @@
 <?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 LoginController extends Zend_Controller_Action
 {
     public function init() {
         $this->view->headTitle($this->view->translate("login"));
-        $this->view->headScript()->appendFile('js/prototype.js');
-        $this->view->headScript()->appendFile('js/utils.js');
-        $this->view->headScript()->appendFile('js/login.js');
-        $this->view->headLink()->appendStylesheet('css/generic.css');
-        $this->view->headLink()->appendStylesheet('css/login.css');
+        $this->_helper->SyjMedias->addScripts('login');
+        $this->_helper->SyjMedias->addStyleSheets('login');
     }
 
     public function loginAction() {
@@ -33,15 +30,9 @@ class LoginController extends Zend_Controller_Action
         }
 
         /* form has been filled */
-
-        $adapter = Zend_Db_Table_Abstract::getDefaultAdapter();
-        $authAdapter = new Zend_Auth_Adapter_DbTable($adapter, 'users', 'pseudo', 'password');
-        $authAdapter->setIdentity($formData['login_user'])
-                ->setCredential(sha1($formData['login_password']));
-
-        $auth = Zend_Auth::getInstance();
-        $result = $auth->authenticate($authAdapter);
-        if (!$result->isValid()) {
+        if (!$this->_helper->SyjUserManager->validate($formData['login_user'],
+                                                     sha1($formData['login_password']),
+                                                     $formData['login_rememberme'])) {
             if ($httprequest) {
                 throw new Syj_Exception_Forbidden();
             } else {
@@ -50,11 +41,11 @@ class LoginController extends Zend_Controller_Action
             }
         }
 
-        $userid = $authAdapter->getResultRowObject('id')->id;
-        $this->_helper->SyjSession->login($userid);
+        $user = $this->_helper->SyjUserManager->current();
 
         if ($httprequest) {
             $api = $this->_helper->SyjApi->setCode(200);
+            $data = array('pseudo' => $user->pseudo);
 
             $login_geom_id = $formData['login_geom_id'];
             if ($login_geom_id) {
@@ -63,21 +54,18 @@ class LoginController extends Zend_Controller_Action
                 if (!$pathMapper->find((int)$login_geom_id, $path)) {
                     throw new Syj_Exception_Request();
                 }
-                if ($path->creator->id === $userid) {
-                    $api->setBody("1"); // creator of displayed geometry
-                } else {
-                    $api->setBody("0");
-                }
+                $data['iscreator'] = ($path->creator->id === $user->id);
             } else {
-                $api->setBody("1"); // no geometry displayed: creator of the (future) geometry
+                $data['iscreator'] = true;
             }
+            $api->setBodyJson($data);
         } else {
             $this->redirect();
         }
     }
 
     public function logoutAction() {
-        $this->_helper->SyjSession->logout();
+        $this->_helper->SyjUserManager->logout();
         $this->redirect();
     }