protected function getTagHtml() { $user = JFactory::getUser(); $buttonHtml = ''; $providers = $this->getSelectedProviders($this->getParamValue('providers')); if ($user->guest) { $buttonHtml = $this->getLoginButtons($providers); } else { $showReconnect = $this->getParamValueEx('show_reconnect', null, 'boolean', 'false'); $showLogoutButton = $this->getParamValueEx('logout', null, 'boolean', 'false'); $logoutUrl = $this->getParamValueEx('logout_url', null, null, JURI::root()); if ($showLogoutButton == 'true') { $logoutUrl = base64_encode(JRoute::_($logoutUrl, false)); $logoutButtonId = $this->providerLoginInfo[$this->provider->name]->logoutButtonId; $buttonHtml = '<input type="submit" name="Submit" id="' . $logoutButtonId . '" class="button btn btn-primary" value="' . JText::_('JLOGOUT') . "\" onclick=\"javascript:jfbc.login.logout('" . $logoutUrl . "')\" />"; } if ($showReconnect == "true") { // get all providers and check if mapping exists. Then, get the buttons for providers the user hasn't connected with $mapProviders = array(); foreach ($providers as $provider) { $userData = JFBCFactory::usermap()->getUser(JFactory::getUser()->id, $provider->systemName)->_data; if (empty($userData->provider_user_id)) { $mapProviders[] = $provider; } } $buttonHtml = $this->getLoginButtons($mapProviders, ' reconnect'); } } return $buttonHtml; }
function getInput() { $jid = $this->form->getValue('attribs.user_id'); if ($jid) { $uid = JFBCFactory::usermap()->getProviderUserId($jid, 'linkedin'); if ($uid) { $access_token = JFBCFactory::usermap()->getUserAccessToken($jid, 'linkedin'); $params['access_token'] = $access_token; $liLibrary = JFBCFactory::provider('linkedin'); $liLibrary->client->setToken((array) $access_token); $url = 'https://api.linkedin.com/v1/companies/?is-company-admin=true&start=0&count=20'; try { $companies = $liLibrary->client->query($url); if ($companies->code == '200') { $this->companies = json_decode($companies->body); } return parent::getInput(); } catch (Exception $e) { return '<div class="jfbc-error">' . JText::_('COM_JFBCONNECT_CHANNEL_LINKEDIN_PERM_TOKEN_EXPIRED_LABEL') . '</div>'; } } else { return '<div class="jfbc-error">' . JText::_('COM_JFBCONNECT_CHANNEL_LINKEDIN_PERM_USER_AUTH_ERROR_LABEL') . '</div>'; } } else { return '<div class="jfbc-error">' . JText::_('COM_JFBCONNECT_CHANNEL_SELECT_USER_ERROR_LABEL') . '</div>'; } }
public function post() { $app = JFactory::getApplication(); //$type = $app->input->get('type','story','STRING'); $provider_nm = $app->input->get('provider', 'facebook', 'CMD'); $user_id = $app->input->get('user_id', 0, 'INT'); $tokan = $app->input->get('tokan', 0, 'RAW'); $email = $app->input->get('email', '', 'STRING'); $password = $app->input->get('password', '', 'STRING'); //$log_usr = $this->plugin->get('user')->id; $provider = JFBCFactory::provider($provider_nm); $provider->client->authenticate(); $loginRegisterModel = JFBCFactory::model('LoginRegister'); //$user = jFactory::getUser(161); $provider->setSessionToken(); $provider->client->setExtendedAccessToken(); //$provider_obj->client->getUser(); $provider->onBeforeLogin(); $config = JFactory::getConfig(); $lifetime = $config->get('lifetime', 15); setcookie('jfbconnect_autologin_disable', 1, time() + $lifetime * 60); $providerUserId = $provider->getProviderUserId(); $userMapModel = JFBCFactory::usermap(); $jUserId = $userMapModel->getJoomlaUserId($providerUserId, strtolower($provider->name)); $jUserEmailId = $userMapModel->getJoomlaUserIdFromEmail($email); //get temp id if ($jUserEmailId) { $providerUserId = $userMapModel->getProviderUserId($jUserEmailId, strtolower($provider->name)); $jUserId = $userMapModel->getJoomlaUserId($providerUserId, strtolower($provider->name)); } else { if (!$jUserEmailId && JFBCFactory::config()->getSetting('automatic_registration')) { //# User is not in system, should create their account automatically //$jUserEmailId = $userMapModel->getJoomlaUserIdFromEmail($email); if (!$jUserEmailId) { $pdata = array(); $pdata['email'] = $email; $pdata['password'] = $password; $fbuser = $loginRegisterModel->createNewUser($provider); } if ($loginRegisterModel->autoCreateUser($providerUserId, $provider)) { $jUserId = $userMapModel->getJoomlaUserId($providerUserId, strtolower($provider->name)); } } } $jUser = JUser::getInstance($jUserId); $loginSuccess = false; // Try to log the user, but not if blocked and initial registration (then there will be a pretty message on how to activate) if (!$provider->initialRegistration || $jUser->get('block') == 0 && $provider->initialRegistration) { $options = array('silent' => 1, 'provider' => $provider, 'provider_user_id' => $providerUserId); // Disable other authentication messages // hack for J3.2.0 bug. Should remove after 3.2.1 is available. $password = $provider->secretKey; $loginSuccess = $app->login(array('username' => $provider->appId, 'password' => $password), $options); } $this->plugin->setResponse($jUser); }
public function canPublish($data) { $canPublish = false; $jid = $data['attribs']['user_id']; if ($jid) { $uid = JFBCFactory::usermap()->getProviderUserId($jid, 'facebook'); if ($uid && isset($data['attribs']['page_id']) && $data['attribs']['page_id'] != '--' && JFBCFactory::provider('facebook')->hasScope($uid, 'manage_pages') && (JFBCFactory::provider('facebook')->hasScope($uid, 'publish_actions') || !$data['attribs']['allow_posts'])) { $canPublish = true; } } return $canPublish; }
public function post(JRegistry $data) { $groupId = $this->options->get('group_id'); $message = $data->get('message', ''); $link = $data->get('link', ''); $params = array(); $params['access_token'] = JFBCFactory::usermap()->getUserAccessToken($this->options->get('user_id'), 'facebook'); $params['message'] = $message; $params['link'] = $link; $return = $this->provider->api($groupId . '/feed', $params); if ($return !== false) { return JText::_('COM_JFBCONNECT_CHANNELS_FACEBOOK_GROUP_POST_SUCCESS'); } else { return false; } }
public function loginMap() { JRequest::checkToken('post') or jexit(JText::_('JInvalid_Token')); $app = JFactory::getApplication(); $provider = JFactory::getApplication()->input->getCmd('provider'); $provider = JFBCFactory::provider($provider); SCSocialUtilities::setJFBCNewMappingEnabled(); $loginRegisterModel = $this->getModel('LoginRegister', 'JFBConnectModel'); $redirect = $loginRegisterModel->getLoginRedirect($provider); $returnParam = '&return=' . base64_encode($redirect); $providerUserId = $provider->getProviderUserId(); if (!$providerUserId) { $app->redirect(JRoute::_('index.php?option=com_jfbconnect&view=loginregister&provider=' . $provider->systemName . $returnParam, false)); } // Populate the data array: $data = array(); $data['username'] = JRequest::getVar('username', '', 'method', 'username'); $data['password'] = JRequest::getString('password', '', 'post', 'string', JREQUEST_ALLOWRAW); // Perform the log in. $error = $app->login($data); // Check if the log in succeeded. if (JError::isError($error) || $error == false) { $app->redirect(JRoute::_('index.php?option=com_jfbconnect&view=loginregister&provider=' . $provider->systemName . $returnParam, false)); } else { $jUser = JFactory::getUser(); if (JFBCFactory::usermap()->map($jUser->get('id'), $providerUserId, $provider->systemName, $provider->client->getToken())) { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MAP_USER_SUCCESS', $provider->name)); } /* Don't import on just a mapping update, for now. Need to investigate. $jUser = JFactory::getUser(); $jfbcLibrary = JFBConnectFacebookLibrary::getInstance(); $fbUserId = $jfbcLibrary->getMappedFbUserId(); $args = array($jUser->get('id'), $fbUserId); JPluginHelper::importPlugin('jfbcprofiles'); $app->triggerEvent('scProfilesImportProfile', $args); JFBCFactory::log('Profile Imported!');*/ JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_jfbconnect/' . 'models'); $loginRegisterModel = JModelLegacy::getInstance('LoginRegister', 'JFBConnectModel'); $redirect = $loginRegisterModel->getLoginRedirect($provider); $app->redirect($redirect); } }
function onUserAfterSave($user, $isnew, $success, $msg) { if (!$isnew) { return true; } $app = JFactory::getApplication(); if ($app->getUserState('com_jfbconnect.registration.alternateflow', false)) { $provider = $app->getUserState('com_jfbconnect.registration.provider.name', null); $providerUserId = $app->getUserState('com_jfbconnect.registration.provider.user_id', null); if ($provider && $providerUserId) { $provider = JFBCFactory::provider($provider); if ($user['id'] && $provider->getProviderUserId() == $providerUserId) { JFBCFactory::usermap()->map($user['id'], $providerUserId, $provider->systemName, $provider->client->getToken()); // If that worked, now call the originating plugin and tell it to finalize anything with the new user $args = array($provider->name, $user['id'], $providerUserId); $app->triggerEvent('socialProfilesOnNewUserSave', $args); } } } }
function getInput() { $jid = $this->form->getValue('attribs.user_id'); if ($jid) { $uid = JFBCFactory::usermap()->getProviderUserId($jid, 'facebook'); if ($uid) { if (!JFBCFactory::provider('facebook')->hasScope($uid, 'user_managed_groups')) { return '<div class="jfbc-error">' . JText::_('COM_JFBCONNECT_CHANNEL_FACEBOOK_PERM_USER_GROUPS_ERROR_LABEL') . '</div>'; } else { if (!JFBCFactory::provider('facebook')->hasScope($uid, 'publish_actions') && $this->form->getValue('attribs.allow_posts')) { return '<div class="jfbc-error">' . JText::_('COM_JFBCONNECT_CHANNEL_FACEBOOK_PERM_PUBLISH_ACTIONS_ERROR_LABEL') . '</div>'; } else { return parent::getInput(); } } } else { return '<div class="jfbc-error">' . JText::_('COM_JFBCONNECT_CHANNEL_FACEBOOK_PERM_PAGE_USER_AUTH_ERROR_LABEL') . '</div>'; } } else { return '<div class="jfbc-error">' . JText::_('COM_JFBCONNECT_CHANNEL_SELECT_USER_ERROR_LABEL') . '</div>'; } }
public function post(JRegistry $data) { $path = $this->provider->options->get('api.url') . 'statuses/update.json'; $message = $data->get('message', ''); $link = $data->get('link', ''); // t.co length. Should update this to use the help/configuration check to verify it hasn't grown. $urlLength = 23; // +1 for https $status = substr($message, 0, 140 - $urlLength - 1) . " " . $link; $user = $this->options->get('user_id'); $accessToken = JFBCFactory::usermap()->getUserAccessToken($user, 'twitter'); $params = array(); $params['oauth_token'] = $accessToken->key; $this->provider->client->setToken((array) $accessToken); $data = array(); $data['status'] = $status; $return = $this->provider->client->oauthRequest($path, 'POST', $params, $data); if ($return !== false) { return JText::_('COM_JFBCONNECT_CHANNELS_TWITTER_STREAM_POST_SUCCESS'); } else { return false; } }
function display($tpl = null) { $configModel = JFBCFactory::config(); $usermapModel = JFBCFactory::usermap(); $autotuneModel = JModelLegacy::getInstance('AutoTune', 'JFBConnectModel'); if (JFBCFactory::provider('facebook')->appId) { $appConfig = JFBCFactory::config()->get('autotune_app_config', null); if (!$appConfig || count($appConfig) == 0) { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MSG_RUN_AUTOTUNE', '<a href="index.php?option=com_jfbconnect&view=autotune">AutoTune</a>'), 'error'); } } $userCounts = array(); foreach (JFBCFactory::getAllProviders() as $p) { if ($p->appId) { $userCounts[$p->systemName] = $usermapModel->getTotalMappings($p->systemName); } } $this->configModel = $configModel; $this->autotuneModel = $autotuneModel; $this->usermapModel = $usermapModel; $this->userCounts = $userCounts; $this->addToolbar(); parent::display($tpl); }
public function post(JRegistry $data) { $user = $this->options->get('user_id'); $access_token = JFBCFactory::usermap()->getUserAccessToken($user, 'linkedin'); $this->provider->client->setToken((array) $access_token); $companyId = $this->options->get('company_id'); $url = 'https://api.linkedin.com/v1/companies/' . $companyId . '/shares'; $vals = array(); $vals['visibility'] = array('code' => 'anyone'); $vals['comment'] = $data->get('message', ''); $vals['content'] = array('submitted-url' => $data->get('link', '')); $vals = json_encode($vals); $return = $this->provider->client->query($url, $vals, array(), 'post'); if ($return !== false) { return JText::_('COM_JFBCONNECT_CHANNELS_LINKEDIN_STREAM_POST_SUCCESS'); } else { return false; } }
function getProviderAvatar($provider, $user) { $html = ""; $providerId = JFBCFactory::usermap()->getProviderUserId($user->get('id'), $provider->systemName); if ($providerId) { $params = new JRegistry(); $params->set('width', $this->params->get("profileWidth")); $params->set('height', $this->params->get("profileHeight")); $params->set('secure', JURI::getInstance()->getScheme() == 'https'); $avatarURL = $provider->profile->getAvatarUrl($providerId, false, $params); $profileURL = $provider->profile->getProfileUrl($providerId); $html = $this->getAvatarHtml($avatarURL, $profileURL, "_blank"); } return $html; }
function autoCreateUser($providerUserId, $provider) { $provider->setInitialRegistration(); $profile = $provider->profile->fetchProfile($providerUserId, array('first_name', 'last_name', 'email', 'full_name')); if ($profile == null || $profile->get('email') == null) { # not enough information returned to auto-create account return false; } $newEmail = $profile->get('email'); $fullname = $profile->get('full_name'); $user['fullname'] = $fullname; $user['email'] = $newEmail; // Create random password for FB User Only, but save so we can email to the user on account creation if (JFBCFactory::config()->getSetting('generate_random_password')) { $this->_newUserPassword = JUserHelper::genRandomPassword(); $user['password_clear'] = $this->_newUserPassword; // Check for Joomla 3.2.1's new hashPassword functions and use those, if exist if (method_exists('JUserHelper', 'hashPassword')) { $user['password'] = JUserHelper::hashPassword($this->_newUserPassword); } else { $salt = JUserHelper::genRandomPassword(32); $crypt = JUserHelper::getCryptedPassword($this->_newUserPassword, $salt); $user['password'] = $crypt . ':' . $salt; } } else { $user['password_clear'] = ""; $this->_newUserPassword = ''; } $lang = JRequest::getVar(JApplication::getHash('language'), '', 'COOKIE'); $user['language'] = $lang; $usernamePrefixFormat = JFBCFactory::config()->getSetting('auto_username_format'); $username = SCUserUtilities::getAutoUsername($profile->get('first_name'), $profile->get('last_name'), $profile->get('email'), $provider->usernamePrefix, $providerUserId, $usernamePrefixFormat); $user['username'] = $username; $useractivation = $this->getActivationMode(); $jUser = $this->getBlankUser($user, $useractivation); if ($jUser && $jUser->get('id', null)) { $this->onAfterRegister($provider, $jUser); SCSocialUtilities::clearJFBCNewMappingEnabled(); if (JFBCFactory::usermap()->map($jUser->get('id'), $providerUserId, $provider->systemName, $provider->client->getToken())) { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MAP_USER_SUCCESS', $provider->name)); return true; } else { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MAP_USER_FAIL', $provider->name)); } } return false; // User creation failed for some reason }
/** * Perform initialization of JFBConnect variables into the document. Currently adds: * ** The (dynamic) login/logout redirects, used by jfbconnect.js * ** The {scopengraphplaceholder} tag to be replaced/removed by the system plugin * @return none */ function onAfterDispatch() { $doc = JFactory::getDocument(); if ($doc->getType() != 'html') { return; } // Only insert javascript on HTML pages, not AJAX, RSS, etc $app = JFactory::getApplication(); $state = $app->getUserState('users.login.form.data', null); $return = null; if (JRequest::getCmd('option') == 'com_users' && JRequest::getCmd('view') == 'login' && is_array($state) && isset($state['return'])) { $return = urldecode($state['return']); } if (!$return) { $return = urldecode(base64_decode($app->input->getBase64('return', ''))); } if (!$return) { $uri = JURI::getInstance(); $return = $uri->toString(array('path', 'query')); if ($return == "") { $return = 'index.php'; } } $requiredPerms = $this->profile->getRequiredScope(); $fbUserId = $this->getMappedUserId(); $logoutJoomlaOnly = $this->configModel->get('logout_joomla_only'); if ($fbUserId && !$logoutJoomlaOnly) { $logoutFacebookJavascript = "jfbc.login.logout_facebook = true;"; } else { $logoutFacebookJavascript = "jfbc.login.logout_facebook = false;"; } $user = JFactory::getUser(); $showLoginModal = $this->configModel->get('facebook_login_show_modal'); if ($user->guest) { setcookie('jfbconnect_permissions_granted', '', time() - 10000, "/"); } // clear the granted permissions cookie $debugCmd = $this->configModel->get('facebook_display_errors') ? "jfbc.debug.enable = '1';\n" : ''; $doc->addScript(JURI::base(true) . '/components/com_jfbconnect/includes/jfbconnect.js?v=6'); $doc->addCustomTag('<script type="text/javascript">' . $logoutFacebookJavascript . "\n" . "jfbc.base = '" . JURI::base() . "';\n" . "jfbc.return_url = '" . base64_encode($return) . "';\n" . "jfbc.login.scope = '" . $requiredPerms . "';\n" . "jfbc.login.show_modal = '" . $showLoginModal . "';\n" . "jfbc.login.use_popup = " . ($this->configModel->get('login_use_popup') ? 'true' : 'false') . ";\n" . "jfbc.login.auto = '" . $this->configModel->get('facebook_auto_login') . "';\n" . "jfbc.login.logged_in = " . (!$user->guest && JFBCFactory::usermap()->getProviderUserId($user->id, 'facebook') ? 'true' : 'false') . ";\n" . "jfbc.token = '" . JSession::getFormToken() . "';\n" . $debugCmd . "jfbc.init();\n" . "</script>"); $doc->addCustomTag('<SCOpenGraphPlaceholder />'); }
public function checkNewMapping() { $newMappingEnabled = JFactory::getApplication()->getUserState('com_jfbconnect.' . $this->systemName . '.checkForNewMapping', false); if ($newMappingEnabled) { $providerId = $this->getProviderUserId(); if ($providerId != null) { JFBCFactory::usermap()->map(JFactory::getUser()->get('id'), $providerId, $this->systemName); } } JFactory::getApplication()->setUserState('com_jfbconnect.' . $this->systemName . '.checkForNewMapping', null); }
private function migrateMappings() { $query = $this->db->getQuery(true); $query->select('*')->from('#__jlinked_user_map'); $this->db->setQuery($query); $jlUsers = $this->db->loadObjectList(); $count = 0; if ($jlUsers) { foreach ($jlUsers as $u) { // JLinked used OAuth1. JFBConnect uses OAuth2, so the token can't be migrated. if (JFBCFactory::usermap()->map($u->joomla_id, $u->linkedin_id, 'linkedin')) { $count++; } } } }
function login($provider = null) { if (!is_object($provider)) { $provider = JFBCFactory::provider(JRequest::getCmd('provider')); } // Let the provider do anything it wants before we try to login. $provider->onBeforeLogin(); $loginRegisterModel = $this->getModel('LoginRegister', 'JFBConnectModel'); // Set a cookie to prevent auto-logging in for the remainder of the session time $config = JFactory::getConfig(); $lifetime = $config->get('lifetime', 15); setcookie('jfbconnect_autologin_disable', 1, time() + $lifetime * 60); // Not a perfect solution, but fixes autologin loops.. $app = JFactory::getApplication(); $providerUserId = $provider->getProviderUserId(); if (!$providerUserId) { # Facebook isn't returning information about this user. Redirect them. JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_UNABLE_TO_RETRIEVE_USER', $provider->name)); $app->redirect('index.php'); } $userMapModel = JFBCFactory::usermap(); $jUser = JFactory::getUser(); if (!$jUser->guest) { SCSocialUtilities::clearJFBCNewMappingEnabled(); if ($userMapModel->map($jUser->get('id'), $providerUserId, strtolower($provider->name), $provider->client->getToken())) { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MAP_USER_SUCCESS', $provider->name)); } else { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MAP_USER_FAIL', $provider->name)); } $return = $loginRegisterModel->getLoginRedirect($provider); $app->redirect($return); } // They're not logged in. Check if they have a Joomla user and log that user in. If not, create them one $jUserId = $userMapModel->getJoomlaUserId($providerUserId, strtolower($provider->name)); if (!$jUserId) { $profile = $provider->profile->fetchProfile($providerUserId, array('email')); $providerEmail = $profile->get('email', null); # Check if automatic email mapping is allowed, and see if that email is registered # AND the Facebook user doesn't already have a Joomla account if (!$provider->initialRegistration && JFBCFactory::config()->getSetting('facebook_auto_map_by_email')) { if ($providerEmail != null) { $jUserEmailId = $userMapModel->getJoomlaUserIdFromEmail($providerEmail); if (!empty($jUserEmailId)) { // Found a user with the same email address // do final check to make sure there isn't a FB account already mapped to it $tempId = $userMapModel->getProviderUserId($jUserEmailId, strtolower($provider->name)); if (!$tempId) { SCSocialUtilities::clearJFBCNewMappingEnabled(); if ($userMapModel->map($jUserEmailId, $providerUserId, strtolower($provider->name), $provider->client->getToken())) { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MAP_USER_SUCCESS', $provider->name)); $jUserId = $jUserEmailId; // Update the temp jId so that we login below } else { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MAP_USER_FAIL', $provider->name)); } } } } } // Check if no mapping, and Automatic Registration is set. If so, auto-create the new user. if (!$jUserId && JFBCFactory::config()->getSetting('automatic_registration')) { # User is not in system, should create their account automatically if ($loginRegisterModel->autoCreateUser($providerUserId, $provider)) { $jUserId = $userMapModel->getJoomlaUserId($providerUserId, strtolower($provider->name)); } } // At this point, we have nothing left to do but redirect the user to the registration page if (!$jUserId) { $return = $loginRegisterModel->getLoginRedirect($provider); $app = JFactory::getApplication(); $regComponent = JFBCFactory::config()->get('registration_component'); if ($regComponent == 'jfbconnect') { $app->redirect(JRoute::_('index.php?option=com_jfbconnect&view=loginregister&provider=' . strtolower($provider->name) . '&return=' . base64_encode($return), false)); } else { $app->setUserState('com_jfbconnect.registration.alternateflow', true); $app->setUserState('com_jfbconnect.registration.provider.name', strtolower($provider->name)); $app->setUserState('com_jfbconnect.registration.provider.user_id', $providerUserId); $plugins = $app->triggerEvent('socialProfilesGetPlugins'); foreach ($plugins as $plugin) { if ($plugin->getName() == $regComponent) { $redirect = $plugin->registration_url; } } if ($redirect) { $app->redirect(JRoute::_($redirect, false)); } } } } $jUser = JUser::getInstance($jUserId); $loginSuccess = false; // Try to log the user, but not if blocked and initial registration (then there will be a pretty message on how to activate) if (!$provider->initialRegistration || $jUser->get('block') == 0 && $provider->initialRegistration) { $options = array('silent' => 1, 'provider' => $provider, 'provider_user_id' => $providerUserId); // Disable other authentication messages // hack for J3.2.0 bug. Should remove after 3.2.1 is available. $password = $provider->secretKey; $loginSuccess = $app->login(array('username' => $provider->appId, 'password' => $password), $options); } if ($loginSuccess) { // lets update the user's access token with whatever we just received $jUser = JFactory::getUser(); $userMapModel->updateUserToken($jUser->get('id'), $provider->systemName, $provider->client->getToken()); // Store Profile URL and Avatar URL $userModel = JFBConnectModelUserMap::getUser($jUser->get('id'), $provider->name); $userModel->saveParameter('profile_url', JFBCFactory::provider($provider->name)->profile->getProfileUrl($providerUserId)); $avatarSettings = new JRegistry(); $avatarSettings->set('width', 50); $avatarSettings->set('height', 50); $userModel->saveParameter('avatar_thumb', JFBCFactory::provider($provider->name)->profile->getAvatarUrl($providerUserId, false, $avatarSettings)); if (!$provider->initialRegistration) { $args = array(strtolower($provider->name), $jUser->get('id'), $providerUserId); $app->triggerEvent('socialProfilesOnLogin', $args); } } JFactory::getApplication()->setUserState('com_jfbconnect.' . strtolower($provider->name) . '.checkForNewMapping', null); $allProviders = JFBCFactory::getAllProviders(); foreach ($allProviders as $p) { $p->checkNewMapping(); } $redirect = $loginRegisterModel->getLoginRedirect($provider); // Clear the 'alternate flow' session bit to prevent further alterations to reg pages for this user/session $app->setUserState('com_jfbconnect.registration.alternateflow', false); $app->redirect($redirect); }