function login() { global $mainframe; $return = base64_decode(JRequest::getVar('return','','post')); require_once JPATH_ADMINISTRATOR.DS.'components'.DS.'com_myapi'.DS.'models'.DS.'facebook.php'; $facebookmodel = new myapiModelfacebook; //Bring the myAPI facebook model $fbUser = $facebookmodel->getLoggedInUser(); $options = array(); $options['remember'] = JRequest::getBool('remember', false); $options['return'] = $return; $options['uid'] = $fbUser['id']; $credentials = array(); $credentials['username'] = JRequest::getVar('username', '', 'method', 'username'); $credentials['password'] = JRequest::getString('passwd', '', 'post', JREQUEST_ALLOWRAW); //preform the login action $error = $mainframe->login($credentials, $options); $message = JText::_( 'LOGGED_IN_FACEBOOK' ); if(JError::isError($error)) { $message = $error->message; } $this->setRedirect($return,$message); }
function newUser() { global $mainframe; $return = base64_decode(JRequest::getVar('return','')); // Get required system objects $user = clone(JFactory::getUser()); $pathway =& $mainframe->getPathway(); $config =& JFactory::getConfig(); $authorize =& JFactory::getACL(); $document =& JFactory::getDocument(); $usersConfig = &JComponentHelper::getParams( 'com_users' ); // Initialize new usertype setting $newUsertype = $usersConfig->get( 'new_usertype' ); if (!$newUsertype) { $newUsertype = 'Registered'; } global $fbUser; if(!is_object($fbUser)){ require_once JPATH_ADMINISTRATOR.DS.'components'.DS.'com_myapi'.DS.'models'.DS.'facebook.php'; $facebookmodel = new myapiModelfacebook; //Bring the myAPI facebook model $fbUser = $facebookmodel->getLoggedInUser(); } if($fbUser['username'] != ''){ $newuserName = $fbUser['username']; }else{ $newuserName = str_replace(' ', '',$fbUser['name']); } $db = JFactory::getDBO(); $uniqueUsername = false; $i = 0; while(!$uniqueUsername){ $tryUsername = $newuserName; if($i >= 1){ $tryUsername = $tryUsername.$i; } $query = "SELECT COUNT(".$db->nameQuote('id').") FROM ".$db->nameQuote('#__users')." WHERE ".$db->nameQuote('username')." = ".$db->quote($tryUsername); $db->setQuery($query); $count = $db->loadResult(); if($count == 0){ $uniqueUsername = true; $newuserName = $tryUsername; } $i++; } jimport('joomla.user.helper'); $newUser['name'] = $fbUser['name']; $newUser['username'] = $newuserName; $newUser['password'] = $newUser['password2'] = JUserHelper::genRandomPassword(); $newUser['email'] = $fbUser['email']; // Bind the post array to the user object if (!$user->bind( $newUser, 'usertype' )) { $message = $user->getError(); $this->setRedirect($return,$message); } // Set some initial user values $user->set('id', 0); $user->set('usertype', $newUsertype); $user->set('gid', $authorize->get_group_id( '', $newUsertype, 'ARO' )); $date =& JFactory::getDate(); $user->set('registerDate', $date->toMySQL()); // If user activation is turned on, we need to set the activation information $useractivation = $usersConfig->get( 'useractivation' ); // If there was an error with registration, set the message and display form if ( $result = !$user->save() ){ $message = $user->getError(); $this->setRedirect($return,$message); }elseif($fbUser['id'] != ''){ $db = JFactory::getDBO(); $facebook = plgSystemmyApiConnect::getFacebook(); $facebookSession = $facebook->getSession(); $query = "INSERT INTO ".$db->nameQuote('#__myapi_users')." (userId,uid,access_token) VALUES(".$db->quote($user->id).",".$db->quote($fbUser['id']).",".$db->quote($facebookSession['access_token']).")"; $db->setQuery($query); $db->query(); //Sync Community Builder $sql_sync = "INSERT IGNORE INTO #__comprofiler(id,user_id) SELECT id,id FROM #__users WHERE #__users.id =".$db->Quote($user->id); $db->setQuery($sql_sync); $db->query(); // Send registration confirmation mail $password = $newUser['password']; $password = preg_replace('/[\x00-\x1F\x7F]/', '', $password); //Disallow control chars in the email myapiController::_sendMail($user, $password); $message = JText::_( 'LOGGED_IN_FACEBOOK' ); $options['fake_array'] = "This mainframe->login needs and array passed to it"; $error = $mainframe->login($fbUser['id'],$options); $user = JFactory::getUser(); JRequest::setVar('K2UserForm',$a = 1); JRequest::setVar('gender',$a = substr($fbUser['gender'],0,1)); JRequest::setVar('url',$a = $fbUser['link']); JRequest::setVar('description',$a = $fbUser['bio']); $dispatcher =& JDispatcher::getInstance(); $dispatcher->trigger('onAfterStoreUser', array($user->getProperties(), true, $result,'')); MyapiController::syncPhoto($fbUser['id']); $this->setRedirect($return,$message); }else{ $this->setRedirect($return,JText::_('NO_UID_FOUND')); } }