public function loginAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $this->_redirect($this->getUrl()); } $request = $this->getRequest(); $redirect = $request->getPost('redirect'); if (strlen($redirect) == 0) { $redirect = $request->getServer('REQUEST_URI'); } if (strlen($redirect) == 0) { $redirect = $this->getUrl(); } $errors = array(); if ($request->isPost()) { $username = $request->getPost('username'); $password = $request->getPost('password'); if (strlen($username) == 0) { $errors['username'] = '******'; } if (strlen($password) == 0) { $errors['password'] = '******'; } if (count($errors) == 0) { $adapter = new Zend_Auth_Adapter_DbTable($this->db, 'users', 'username', 'password', 'md5(?)'); $adapter->setIdentity($username); $adapter->setCredential($password); $result = $auth->authenticate($adapter); if ($result->isValid()) { $user = new DatabaseObject_User($this->db); $user->load($adapter->getResultRowObject()->user_id); $user->loginSuccess(); $seconds = (int) $request->getPost('expires'); if ($seconds > 0) { $auth->getStorage()->setExpirationSeconds($seconds); } $identity = $user->createAuthIdentity(); $auth->getStorage()->write($identity); $this->_redirect($redirect); } DatabaseObject_User::LoginFailure($username, $result->getCode()); $errors['username'] = '******'; } } $this->breadcrumbs->addStep('Login'); $this->view->errors = $errors; $this->view->redirect = $redirect; }