Fix social ids storage

This commit is contained in:
RainLoop Team 2016-07-17 16:13:14 +03:00
parent cec53b111f
commit 278e98561d

View file

@ -99,16 +99,16 @@ class Social
if ($oAccount && $oTwitter) if ($oAccount && $oTwitter)
{ {
$oSettings = $this->oActions->SettingsProvider()->Load($oAccount); $oSettings = $this->oActions->SettingsProvider()->Load($oAccount);
$sEncodedeData = $oSettings->GetConf('TwitterAccessToken', ''); $sEncodedData = $oSettings->GetConf('TwitterAccessToken', '');
if (!empty($sEncodedeData)) if (!empty($sEncodedData))
{ {
$aData = \RainLoop\Utils::DecodeKeyValues($sEncodedeData); $aData = \RainLoop\Utils::DecodeKeyValues($sEncodedData);
if (is_array($aData) && isset($aData['user_id'])) if (is_array($aData) && isset($aData['id']))
{ {
$this->oActions->StorageProvider()->Clear(null, $this->oActions->StorageProvider()->Clear(null,
\RainLoop\Providers\Storage\Enumerations\StorageType::NOBODY, \RainLoop\Providers\Storage\Enumerations\StorageType::NOBODY,
$this->TwitterUserLoginStorageKey($oTwitter, $aData['user_id']) $this->TwitterUserLoginStorageKey($oTwitter, $aData['id'])
); );
} }
} }
@ -387,6 +387,7 @@ class Social
if ($mData && 0 < \strlen($mData)) if ($mData && 0 < \strlen($mData))
{ {
$aUserData = array( $aUserData = array(
'id' => $mData,
'Email' => $oAccount->Email(), 'Email' => $oAccount->Email(),
'Password' => $oAccount->Password() 'Password' => $oAccount->Password()
); );
@ -395,7 +396,6 @@ class Social
$oSettings->SetConf('FacebookSocialName', $sSocialName); $oSettings->SetConf('FacebookSocialName', $sSocialName);
$oSettings->SetConf('FacebookAccessToken', \RainLoop\Utils::EncodeKeyValues(array('id' => $mData))); $oSettings->SetConf('FacebookAccessToken', \RainLoop\Utils::EncodeKeyValues(array('id' => $mData)));
$this->oActions->SettingsProvider()->Save($oAccount, $oSettings); $this->oActions->SettingsProvider()->Save($oAccount, $oSettings);
$this->oActions->StorageProvider()->Put(null, $this->oActions->StorageProvider()->Put(null,
@ -498,6 +498,8 @@ class Social
$aAccessToken = $oTwitter->extract_params($oTwitter->response['response']); $aAccessToken = $oTwitter->extract_params($oTwitter->response['response']);
if ($aAccessToken && isset($aAccessToken['oauth_token']) && !empty($aAccessToken['user_id'])) if ($aAccessToken && isset($aAccessToken['oauth_token']) && !empty($aAccessToken['user_id']))
{ {
$aAccessToken['id'] = $aAccessToken['user_id'];
$oTwitter->config['user_token'] = $aAccessToken['oauth_token']; $oTwitter->config['user_token'] = $aAccessToken['oauth_token'];
$oTwitter->config['user_secret'] = $aAccessToken['oauth_token_secret']; $oTwitter->config['user_secret'] = $aAccessToken['oauth_token_secret'];
@ -505,6 +507,7 @@ class Social
$sSocialName = \trim($sSocialName); $sSocialName = \trim($sSocialName);
$aUserData = array( $aUserData = array(
'id' => $aAccessToken['id'],
'Email' => $oAccount->Email(), 'Email' => $oAccount->Email(),
'Password' => $oAccount->Password() 'Password' => $oAccount->Password()
); );
@ -516,7 +519,7 @@ class Social
$this->oActions->StorageProvider()->Put(null, $this->oActions->StorageProvider()->Put(null,
\RainLoop\Providers\Storage\Enumerations\StorageType::NOBODY, \RainLoop\Providers\Storage\Enumerations\StorageType::NOBODY,
$this->TwitterUserLoginStorageKey($oTwitter, $aAccessToken['user_id']), $this->TwitterUserLoginStorageKey($oTwitter, $aAccessToken['id']),
\RainLoop\Utils::EncodeKeyValues($aUserData)); \RainLoop\Utils::EncodeKeyValues($aUserData));
$iErrorCode = 0; $iErrorCode = 0;
@ -574,8 +577,7 @@ class Social
$aUserData = \RainLoop\Utils::DecodeKeyValues($sUserData); $aUserData = \RainLoop\Utils::DecodeKeyValues($sUserData);
if ($aUserData && \is_array($aUserData) && if ($aUserData && \is_array($aUserData) &&
!empty($aUserData['Email']) && !empty($aUserData['Email']) && isset($aUserData['Password']))
isset($aUserData['Password']))
{ {
$iErrorCode = $this->loginProcess($oAccount, $aUserData['Email'], $aUserData['Password']); $iErrorCode = $this->loginProcess($oAccount, $aUserData['Email'], $aUserData['Password']);
} }
@ -762,7 +764,7 @@ class Social
*/ */
public function TwitterUserLoginStorageKey($oTwitter, $sTwitterUserId) public function TwitterUserLoginStorageKey($oTwitter, $sTwitterUserId)
{ {
return \implode('_', array('twitter', \md5($oTwitter->config['consumer_secret']), $sTwitterUserId, APP_SALT)); return \implode('_', array('twitter_2', \md5($oTwitter->config['consumer_secret']), $sTwitterUserId, APP_SALT));
} }
/** /**