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); } } }
public function editAction() { if (!Zend_Auth::getInstance()->hasIdentity()) { return $this->_redirect('/'); } $user = new Zend_Session_Namespace('user'); // process the form $form = new Application_Form_UserEdit(); if ($this->getRequest()->isPost()) { if ($form->isValid($_POST)) { /** * Because some fields are excluded from the form, they will be * set manually */ $id = $user->user['id']; $username = $user->user['username']; $password_salt = $user->user['password_salt']; $password_hash = $user->user['password_hash']; if ($form->getValue('password') == $form->getValue('password_confirm')) { /** * Check if the user changed the email to one that is * already in use */ $user_mapper = new Application_Model_UserMapper(); $email = $user_mapper->findByEmail($form->getValue('email')); $duplicate = false; if ($email) { $email = $email[0]; if ($id != $email->getId()) { $duplicate = true; } } if (!$duplicate) { // update the user $values = $form->getValues(); $user_mapper = new Application_Model_UserMapper(); $user = new Application_Model_User($values); $user->setId($id); $user->setUsername($username); $user->setPassword_salt($password_salt); $user->setPassword_hash($password_hash); $user->setActive(1); $user_mapper->save($user); // update the session $session = new Zend_Session_Namespace('user'); $session->user = $user->get_array(); $this->_helper->FlashMessenger('Successful Update'); return $this->_redirect('/user'); } else { print "A user with this email already exists."; } } else { print "The password was not confirmed."; } } else { print 'Invalid form'; } } // populate the form with the user's information $elements = $form->getElements(); unset($elements['submit']); foreach ($elements as $key => $row) { $form->{$key}->setValue($user->user[$key]); } $this->view->form = $form; }