Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
 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();
 }
Esempio n. 3
0
 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');
 }
Esempio n. 4
0
 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();
 }
Esempio n. 5
0
 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();
     }
 }