public function reset() { $mainframe = JFactory::getApplication(); $params = JComponentHelper::getParams('com_bt_socialconnect'); $jinput = JFactory::getApplication()->input; $model = $this->getModel('Profile', 'Bt_SocialconnectModel'); //get accestoken ,user id type social from link $access_token = $jinput->get->get('access_token', '', 'STRING'); $user_id = (int) $jinput->getInt('user_id'); $social = $jinput->get('social'); switch ($social) { case 'google': $user = JHtmlBt_Socialconnect::getUserGG($access_token); //Get user profile assign data $user = JHtmlBt_Socialconnect::prepareData($user, 'google'); break; case 'facebook': /* * refresh access token after reset account and save new access token in database */ $token_url = "https://graph.facebook.com/oauth/access_token?client_id=" . trim($params->get('fbappId', '')) . "&client_secret=" . trim($params->get('fbsecret', '')) . "&grant_type=fb_exchange_token&fb_exchange_token=" . $access_token; $contents = self::file_get_content($token_url); $paramsfb = null; parse_str($contents, $paramsfb); $access_token = $paramsfb['access_token']; if ($access_token) { $graph_url = "https://graph.facebook.com/me?access_token=" . $access_token; $user = JHtmlBt_Socialconnect::curlResponse($graph_url); $user = json_decode($user); $user = JHtmlBt_Socialconnect::prepareData($user, 'facebook'); if ($user) { $model->updateAccesstoken($user['id'], $access_token); } } break; case 'twitter': $info = unserialize($access_token); if (!class_exists('TwitterOAuth')) { require_once JPATH_SITE . '/components/com_bt_socialconnect/helpers/html/twitter/twitteroauth.php'; } $connection = new TwitterOAuth(trim($params->get('ttappId', '')), trim($params->get('ttsecret', '')), $info['oauth_token'], $info['oauth_token_secret']); $user = $connection->get('account/verify_credentials'); $user = JHtmlBt_Socialconnect::prepareData($user, 'twitter'); break; case 'linkedin': $user = JHtmlBt_Socialconnect::fetch('GET', $access_token); if (isset($user->status)) { $this->setMessage(JText::_('COM_BT_SOCIALCONNECT_PROFILE_RESET_FAILED')); $this->setRedirect(JRoute::_('index.php?option=com_bt_socialconnect&view=profile&user_id=' . $user_id, false)); return; } $user = JHtmlBt_Socialconnect::prepareData($user, 'linkedin'); break; } $user['user_id'] = $user_id; $rows = self::getInfouser($user_id); $user = JHtmlBt_Socialconnect::assignProfile($user); $user['username'] = $rows->username; $user['email1'] = $rows->email; $user['password1'] = ''; unset($user['password2']); $return = $model->save($user); if ($return !== true) { $this->setError(JText::_('COM_BT_SOCIALCONNECT_PROFILE_RESET_FAILED')); return false; } else { $this->setMessage(JText::_('COM_BT_SOCIALCONNECT_PROFILE_RESET_SUCCESS')); } $this->setRedirect(JRoute::_('index.php?option=com_bt_socialconnect&view=profile&user_id=' . $return, false)); }
function onAfterInitialise() { $document = JFactory::getDocument(); $document->addStyleSheet(JURI::root() . 'plugins/system/bt_socialconnect_system/element/css/style.css'); $session = JFactory::getSession(); $message = $session->get('bts-message'); if ($message) { JFactory::getApplication()->enqueueMessage($message); $session->clear('bts-message'); } $params = JComponentHelper::getParams('com_bt_socialconnect'); if (JRequest::getVar("bttask") == "login" || JRequest::getVar("bttask") == "register") { if (file_exists(JPATH_ROOT . '/modules/mod_btsocialconnect_login/helper.php')) { require_once JPATH_ROOT . '/modules/mod_btsocialconnect_login/helper.php'; modbt_socialconnectHelper::ajax(); } } if (isset($_REQUEST["code"])) { $code = $_REQUEST["code"]; if (isset($_REQUEST['state']) && $_REQUEST['state'] == 'sc_fb') { $callback_url = JURI::root(); $token_url = JHtmlBt_Socialconnect::getTokenUrl(trim($params->get('fbappId', '')), $callback_url, trim($params->get('fbsecret', '')), $code); $response = JHtmlBt_Socialconnect::curlResponse($token_url); $paramsFB = null; parse_str($response, $paramsFB); $graph_url = "https://graph.facebook.com/me?access_token=" . $paramsFB['access_token']; $user = JHtmlBt_Socialconnect::curlResponse($graph_url); $user = JHtmlBt_Socialconnect::prepareData(json_decode($user), 'facebook'); $user = JHtmlBt_Socialconnect::assignProfile($user); $user['access_token'] = $paramsFB['access_token']; JHtmlBt_Socialconnect::checkUser($user, $params); if ($params->get('fbregister', 'automatic') == 'automatic') { JHtmlBt_Socialconnect::authenticationSocial($params, $user); } else { if (!empty(JFactory::getUser()->id)) { JHtmlBt_Socialconnect::authenticationSocial($params, $user); JHtmlBt_Socialconnect::reloadParent($return_decode); } else { JHtmlBt_Socialconnect::loadDataForm($user); } } } if (isset($_REQUEST['state']) && $_REQUEST['state'] == 'sc_tt') { if (!class_exists('TwitterOAuth')) { require_once JPATH_SITE . '/components/com_bt_socialconnect/helpers/html/twitter/twitteroauth.php'; } $session = JFactory::getSession(); if (!isset($_REQUEST['btcallback'])) { $connection = new TwitterOAuth(trim($params->get('ttappId', '')), trim($params->get('ttsecret', ''))); $uri = JFactory::getURI(); $mainframe = JFactory::getApplication(); $uri->setVar('btcallback', 1); $request_token = $connection->getRequestToken($uri->toString()); $session->set('oauth_token', $request_token['oauth_token']); $session->set('oauth_token_secret', $request_token['oauth_token_secret']); /* If last connection failed don't display authorization link. */ switch ($connection->http_code) { case 200: $url = $connection->getAuthorizeURL($request_token['oauth_token']); $mainframe->redirect($url); break; default: JHtmlBt_Socialconnect::response('Could not connect to Twitter. Refresh the page or try again later.'); } } else { if (isset($_REQUEST['oauth_token']) && $session->get('oauth_token') !== $_REQUEST['oauth_token']) { $session->clear('oauth_token'); $session->clear('oauth_token_secret'); } else { $connection = new TwitterOAuth(trim($params->get('ttappId', '')), trim($params->get('ttsecret', '')), $session->get('oauth_token'), $session->get('oauth_token_secret')); $access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']); if (200 == $connection->http_code) { $user = $connection->get('account/verify_credentials'); $user = JHtmlBt_Socialconnect::prepareData($user, 'twitter'); $user = JHtmlBt_Socialconnect::assignProfile($user, $params->get('tt-profiles')); $user['access_token'] = serialize($access_token); JHtmlBt_Socialconnect::checkUser($user, $params); $session->set('connection', serialize($connection)); if ($params->get('ttregister', 'automatic') == 'automatic') { JHtmlBt_Socialconnect::authenticationSocial($params, $user); } else { if (!empty(JFactory::getUser()->id)) { JHtmlBt_Socialconnect::authenticationSocial($params, $user); JHtmlBt_Socialconnect::reloadParent($return_decode); } else { $user['email1'] = ''; $user['email2'] = ''; JHtmlBt_Socialconnect::loadDataForm($user); } } } else { JHtmlBt_Socialconnect::response('Error:' . $connection->http_code); } } } } if (isset($_REQUEST['state']) && $_REQUEST['state'] == 'sc_gg') { $token = JHtmlBt_Socialconnect::getTokenGG($code, trim($params->get('ggappId', '')), trim($params->get('ggsecret', '')), JURI::base(), 'authorization_code'); $user = JHtmlBt_Socialconnect::getUserGG($token->access_token); $user = JHtmlBt_Socialconnect::prepareData($user, 'google'); $user = JHtmlBt_Socialconnect::assignProfile($user, $params->get('gg-profiles')); $user['access_token'] = $token->access_token; // check existing user JHtmlBt_Socialconnect::checkUser($user, $params); if ($params->get('ggregister', 'automatic') == 'automatic') { JHtmlBt_Socialconnect::authenticationSocial($params, $user); } else { if (!empty(JFactory::getUser()->id)) { JHtmlBt_Socialconnect::authenticationSocial($params, $user); JHtmlBt_Socialconnect::reloadParent($return_decode); } else { JHtmlBt_Socialconnect::loadDataForm($user); } } } if (isset($_REQUEST['state']) && $_REQUEST['state'] == 'sc_linkedin') { $callback_url = JURI::root(); $token_url = JHtmlBt_Socialconnect::getTokenLinkedin(trim($params->get('linkappId', '')), $callback_url, trim($params->get('linksecret', '')), $code); $user = JHtmlBt_Socialconnect::fetch('GET', $token_url->access_token); $user = JHtmlBt_Socialconnect::prepareData($user, 'linkedin'); $user = JHtmlBt_Socialconnect::assignProfile($user); $user['access_token'] = $token_url->access_token; JHtmlBt_Socialconnect::checkUser($user, $params); if ($params->get('linkregister', 'automatic') == 'automatic') { JHtmlBt_Socialconnect::authenticationSocial($params, $user); } else { if (!empty(JFactory::getUser()->id)) { JHtmlBt_Socialconnect::authenticationSocial($params, $user); JHtmlBt_Socialconnect::reloadParent($return_decode); } else { JHtmlBt_Socialconnect::loadDataForm($user); } } } } //Check facebook login if (isset($_COOKIE['facebookid']) && $_COOKIE['facebookid'] != "") { $faceid = $_COOKIE['facebookid']; $userid = JHtmlBt_Socialconnect::getUser($faceid); if ($userid) { $email = JHtmlBt_Socialconnect::getEmail($userid); if ($email) { if (empty(JFactory::getUser()->id)) { JHtmlBt_Socialconnect::loginSocial($email); } } } } }