Ejemplo n.º 1
0
 public function loginAction()
 {
     $form = new Default_Form_Login();
     $form->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/login.phtml'))));
     $this->view->form = $form;
     if ($this->getRequest()->isPost()) {
         if ($form->isValid($this->getRequest()->getPost())) {
             $dbAdapter = new Zend_Auth_Adapter_DbTable($this->db, 'users', 'email', 'password', 'MD5(?) AND deleted = "0"');
             $dbAdapter->setIdentity($this->getRequest()->getPost('tbUser'))->setCredential($this->getRequest()->getPost('tbPass'));
             $auth = Zend_Auth::getInstance();
             $result = $auth->authenticate($dbAdapter);
             if (!$result->isValid()) {
                 switch ($result->getCode()) {
                     case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
                     case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
                         $this->_flashMessenger->addMessage("<div class='error canhide'><p>Incorrect email or password!<a href='javascript:;'>Close</a><p>/div>");
                         break;
                     default:
                         /** do stuff for other failure **/
                         $this->_flashMessenger->addMessage("<div class='error canhide'><p>Incorrect email or password!<a href='javascript:;'>Close</a></p>/div>");
                         break;
                 }
             } else {
                 $adminUserId = $dbAdapter->getResultRowObject();
                 $adminUser = new Default_Model_Users();
                 $adminUser->find($adminUserId->id);
                 if ($adminUser->getStatus() == 0) {
                     $this->_flashMessenger->addMessage("<div class='error canhide'><p>Your account was not confirmed! Please check your email for the confirmation email!<a href='javascript:;'>Close</a></p></div>");
                     $auth->clearIdentity();
                 } else {
                     $storage = $auth->getStorage();
                     $adminUser->saveLastlogin();
                     $storage->write($adminUser);
                 }
             }
             $this->_redirect('/auth/login/');
         }
     }
 }