public function bdApiConsumer_updateExternalAuthAssociation(array $provider, $providerKey, $userId, array $extra) { $providerCode = $this->bdApiConsumer_getProviderCode($provider); if (!empty($extra['token']['expires_in']) and empty($extra['token']['expire_date'])) { // use time() instead of XenForo_Application::$time to avoid issues // when script is running for a long time in the background / CLI $extra['token']['expire_date'] = time() + $extra['token']['expires_in']; } if (!empty($extra['token']['_headers'])) { unset($extra['token']['_headers']); } if (!empty($extra['token']['_responseStatus'])) { unset($extra['token']['_responseStatus']); } if (bdApiConsumer_Option::get('takeOver', 'avatar')) { $avatarUrl = bdApiConsumer_Helper_Avatar::getAvatarUrlFromAuthExtra($extra); if (!empty($avatarUrl)) { $this->getModelFromCache('XenForo_Model_Avatar')->bdApiConsumer_applyAvatar($userId, $avatarUrl); } } if (XenForo_Application::$versionId >= 1030000) { return $this->updateExternalAuthAssociation($providerCode, $providerKey, $userId, $extra); } else { return $this->updateExternalAuthAssociation($providerCode, $providerKey, $userId, $this->bdApiConsumer_getUserProfileField(), $extra); } }
public function bdApiConsumer_applyAvatar($userId, $avatarUrl) { $dw = XenForo_DataWriter::create('XenForo_DataWriter_User'); $dw->setExistingData($userId); $dw->bulkSet(array('avatar_date' => 0, 'avatar_width' => 0, 'avatar_height' => 0, 'avatar_crop_x' => 0, 'avatar_crop_y' => 0, 'gravatar' => bdApiConsumer_Helper_Avatar::getGravatar($userId, $avatarUrl)), array('runVerificationCallback' => false)); return $dw->save(); }
public static function setupHelper() { self::$_helperOriginal = XenForo_Template_Helper_Core::$helperCallbacks['avatar']; if (self::$_helperOriginal[0] === 'self') { self::$_helperOriginal[0] = 'XenForo_Template_Helper_Core'; } XenForo_Template_Helper_Core::$helperCallbacks['avatar'] = array(__CLASS__, 'helperAvatarUrl'); XenForo_Template_Helper_Core::$helperCallbacks['bdapiconsumer_avatarresize'] = array(__CLASS__, 'helperAvatarResize'); }
public function actionExternalAvatar() { $userId = $this->_input->filterSingle('user_id', XenForo_Input::UINT); $auths = $this->getModelFromCache('XenForo_Model_UserExternal')->bdApiConsumer_getExternalAuthAssociations($userId); foreach ($auths as $auth) { $avatarUrl = bdApiConsumer_Helper_Avatar::getAvatarUrlFromAuthExtra($auth['extra_data']); if (!empty($avatarUrl)) { return $this->responseRedirect(XenForo_ControllerResponse_Redirect::RESOURCE_CANONICAL, $avatarUrl); } } return $this->responseNoPermission(); }
public static function init_dependencies(XenForo_Dependencies_Abstract $dependencies, array $data) { XenForo_Template_Helper_Core::$helperCallbacks['bdapiconsumer_getoption'] = array('bdApiConsumer_Option', 'get'); XenForo_Template_Helper_Core::$helperCallbacks['bdapiconsumer_getprovidersdkjs'] = array('bdApiConsumer_Helper_Template', 'getProviderSdkJs'); if (bdApiConsumer_Option::get('takeOver', 'register')) { $options = XenForo_Application::getOptions(); $options->set('registrationSetup', 'enabled', 0); $options->set('bdapi_consumer_bypassRegistrationActive', 1); } if (bdApiConsumer_Option::get('takeOver', 'avatar')) { bdApiConsumer_Helper_Avatar::setupHelper(); } }