Example #1
0
 public function recoverUsername(Application_Model_User $user)
 {
     $options['email'] = $user->getEmail();
     $options['username'] = $user->getUsername();
     $options['firstName'] = $user->getFirstName();
     $options['lastName'] = $user->getLastName();
     $Mail = new Base_Mail();
     $Mail->sendForgotUsernameMail($options);
 }
Example #2
0
 public function loginAction()
 {
     if (Zend_Auth::getInstance()->hasIdentity()) {
         return $this->_redirect('/');
     }
     // process the form
     $form = new Application_Form_Login();
     if ($this->getRequest()->isPost() && $form->isValid($_POST)) {
         // check if the user exists
         $user_mapper = new Application_Model_UserMapper();
         $qry = "\n                SElECT *\n                FROM   user\n                WHERE  username = :credential\n                OR     email    = :credential";
         $params = array('credential' => $form->getValue('credential'));
         $user = $user_mapper->query($qry, $params);
         if ($user) {
             $user = new Application_Model_User($user[0]);
             // if the account is not active, prompt the user to activate the account
             if (!$user->getActive()) {
                 $this->_helper->FlashMessenger('User Not Activated');
                 return $this->_redirect('/registration/confirm/id/' . $user->getId());
             }
             // authenticate the user
             $db = Zend_Registry::get('db_default');
             $credential_choice = $params['credential'] == $user->getUsername() ? 'username' : 'email';
             $adapter = new Zend_Auth_Adapter_DbTable($db, 'user', $credential_choice, 'password_hash');
             $adapter->setIdentity($form->getValue('credential'));
             $adapter->setCredential(hash('sha256', $user->getPassword_salt() . $form->getValue('password')));
             $zend_auth = Zend_Auth::getInstance();
             $result = $zend_auth->authenticate($adapter);
             if ($result->isValid()) {
                 // store session information in database
                 $session_mapper = new Application_Model_SessionMapper();
                 $session = new Application_Model_Session(array('user_id' => $user->getId(), 'ip_address' => $_SERVER['REMOTE_ADDR'], 'login_timestamp' => date('Y-m-d H:i:s')));
                 $session_mapper->save($session);
                 // store user information in session variable
                 $session = new Zend_Session_Namespace('user');
                 $session->user = $user->get_array();
                 $this->_helper->FlashMessenger('Successful Login');
                 return $this->_redirect('/');
             } else {
                 echo "Authentication failed.";
             }
         } else {
             echo "Invalid username/email";
         }
     }
     $this->view->form = $form;
 }
Example #3
0
 public function doFacebookLogin()
 {
     $view = new Zend_view();
     $view->addHelperPath('Base/View/Helper/', 'Base_View_Helper');
     $facebook = $view->facebook();
     $session = $facebook->getSession();
     if ($session) {
         try {
             $Auth = new Base_Auth_Auth();
             $uid = $facebook->getUser();
             $user = new Application_Model_User();
             $where = "facebook_id='{$uid}'";
             $user = $user->fetchRow($where);
             if (false === $user) {
                 //create new user
                 $me = $facebook->api('/me');
                 $password = md5($Auth->passwordGenerator());
                 $user = new Application_Model_User();
                 if ($me['email'] != "") {
                     $where = "email='{$me['email']}'";
                     $user = $user->fetchRow($where);
                     if (false === $user) {
                         //insertex
                         $user = new Application_Model_User();
                         $user->setEmail($me['email']);
                         $user->setUsername($me['id']);
                         $user->setPassword($password);
                         $user->setfirstName($me['first_name']);
                         $user->setLastName($me['last_name']);
                         $user->setSex($me['gender']);
                         $user->setGapperOrFriend('gapper');
                         $user->setFacebookId($me['id']);
                         $user->setStatus('active');
                         $user->setDob('0000-00-00');
                         $user->setUserLevelId(1);
                     } else {
                         //update
                         $user->setFacebookId($me['id']);
                     }
                 } else {
                     $user = new Application_Model_User();
                     $user->setEmail($me['email']);
                     $user->setUsername($me['id']);
                     $user->setPassword($password);
                     $user->setfirstName($me['first_name']);
                     $user->setLastName($me['last_name']);
                     $user->setSex($me['gender']);
                     $user->setGapperOrFriend('gapper');
                     $user->setFacebookId($me['id']);
                     $user->setStatus('active');
                     $user->setDob('0000-00-00');
                     $user->setUserLevelId(1);
                 }
                 $user_id = $user->save();
                 if ($user_id > 0) {
                     $user->setDefaultPermissions($user_id);
                     if ($params['email'] != "") {
                         //send registration mail
                     }
                 }
             }
             //--do login --
             $params['email'] = $user->getEmail();
             //$params['username']=$user->getUsername();
             $params['password'] = $user->getPassword();
             $params['md5'] = "false";
             $Auth->doLogout();
             $loginStatus = true;
             if ($params['email'] != "") {
                 $loginStatus = $Auth->doLogin($params, 'email');
             } else {
                 $params['email'] = $user->getUsername();
                 $loginStatus = $Auth->doLogin($params, 'username');
             }
             if ($user->getEmail() == "" || is_null($user->getEmail())) {
                 //echo "<a href='/gapper/update-your-email' >Click here</a>";
                 //$this->_helper->redirector('update-your-email','gapper');
                 $result['email'] = "no";
                 return $result;
             }
             if ($loginStatus) {
                 $result['email'] = "ok";
                 return $result;
                 //echo "<a href='/gapper/where-i-am' >Click here</a>";
                 //$this->_helper->redirector('where-i-am','gapper');
             } else {
                 if ($user->getStatus() == "inactive") {
                     exit("Please activate your account. <br><a href='#' onclick='window.close();'>Close</a>");
                 } else {
                     if ($user->getStatus() == "deleted") {
                         exit("Your account status is deleted. Please contact administrator.");
                     } else {
                         exit("error while login");
                     }
                 }
             }
         } catch (FacebookApiException $e) {
             error_log($e);
         }
     }
 }