/** * This method logs in the user * Member login * @author Kashif Irshad * @param string $userName * @param string $password in md5 encryption * @return string return 'success' for successfully login and all other messages are error message */ public function login($userName, $password, $remember) { $userTable = new Application_Model_DbTable_User(); $authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter()); $authAdapter->setTableName('users'); $authAdapter->setIdentityColumn('username'); $authAdapter->setCredentialColumn('password'); $authAdapter->setIdentity($userName); $authAdapter->setCredential($password); $authAdapter->setAmbiguityIdentity(true); $auth = Zend_Auth::getInstance(); $auth->setStorage(new Zend_Auth_Storage_Session('user')); $result = $auth->authenticate($authAdapter); if ($result->isValid()) { if ($remember > 0) { $oneMinute = 60; $oneHour = $oneMinute * 60; $oneDay = $oneHour * 24; $oneWeek = $oneDay * 7; $oneMonth = $oneDay * 30; Zend_Session::rememberMe($oneWeek); } return 'success'; } else { $userRow = $userTable->fetchRow("username='******'"); if (isset($userRow)) { return 'Invalid password'; } else { return 'Invalid username or password'; } } }
/** * Request to login a user comes to this method */ public function indexAction() { $auth = Zend_Auth::getInstance(); $auth->setStorage(new Zend_Auth_Storage_Session('user')); //If user is already loged in redirect him to dash board. if ($auth->hasIdentity()) { $this->_redirect('patient/orders'); } $this->_helper->layout->setLayout('login'); $forms = Zend_Registry::get('forms'); $form = new Zend_Form($forms->user->login); $userManagement = new Application_Model_User(); if ($this->getRequest()->isPost()) { $data = $this->getRequest()->getPost(); $error = array(); if ($form->isValid($data)) { $userName = $form->username->getValue(); $password = $form->password->getValue(); $remember = $this->_request->getParam('remember', 0); $userTable = new Application_Model_DbTable_User(); $userExits = $userTable->fetchRow('username = "******" AND password= "******" AND deleted_at IS NULL'); $magUser = false; if (!empty($userExits)) { $userExits = $userExits->toArray(); if ($userExits['id'] == 0 || $userExits['id'] == '') { $magUser = true; } $session = new Zend_Session_Namespace('userObj'); $session->__set('userObj', $userExits); } if ($magUser) { $form->username->setErrors(array('Invalid username or password')); } else { $response = $userManagement->login($userName, md5($password), $remember); } if ($response == 'success') { $this->_redirect('patient/orders'); } else { $form->username->setErrors(array('Invalid username or password')); } } } $this->view->form = $form; }