예제 #1
0
 /**
  * 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;
 }