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/'); } } }