Added AdditionalOptions for SsoHash

This commit is contained in:
RainLoop Team 2015-02-16 22:30:42 +04:00
parent 93d275c192
commit 2a90664574
2 changed files with 34 additions and 1 deletions

View file

@ -130,17 +130,19 @@ class Api
/**
* @param string $sEmail
* @param string $sPassword
* @param array $aAdditionalOptions = array()
* @param bool $bUseTimeout = true
*
* @return string
*/
public static function GetUserSsoHash($sEmail, $sPassword, $bUseTimeout = true)
public static function GetUserSsoHash($sEmail, $sPassword, $aAdditionalOptions = array(), $bUseTimeout = true)
{
$sSsoHash = \MailSo\Base\Utils::Sha1Rand($sEmail.$sPassword);
return \RainLoop\Api::Actions()->Cacher()->Set(\RainLoop\KeyPathHelper::SsoCacherKey($sSsoHash), \RainLoop\Utils::EncodeKeyValues(array(
'Email' => $sEmail,
'Password' => $sPassword,
'AdditionalOptions' => $aAdditionalOptions,
'Time' => $bUseTimeout ? \time() : 0
))) ? $sSsoHash : '';
}

View file

@ -898,9 +898,40 @@ class ServiceActions
$sEmail = \trim($mData['Email']);
$sPassword = $mData['Password'];
$aAdditionalOptions = isset($mData['AdditionalOptions']) && \is_array($mData['AdditionalOptions']) &&
0 < \count($mData['AdditionalOptions']) ? $mData['AdditionalOptions'] : null;
try
{
$oAccount = $this->oActions->LoginProcess($sEmail, $sPassword);
if ($oAccount instanceof \RainLoop\Model\Account && $aAdditionalOptions)
{
$bNeedToSettings = false;
$oSettings = $this->SettingsProvider()->Load($oAccount);
if ($oSettings)
{
$sLanguage = isset($aAdditionalOptions['Language']) ?
$aAdditionalOptions['Language'] : '';
if ($sLanguage)
{
$sLanguage = $this->oActions->ValidateLanguage($sLanguage);
if ($sLanguage !== $oSettings->GetConf('Language', ''))
{
$bNeedToSettings = true;
$oSettings->SetConf('Language', $sLanguage);
}
}
}
if ($bNeedToSettings)
{
$this->SettingsProvider()->Save($oAccount, $oSettings);
}
}
$this->oActions->AuthToken($oAccount);
$bLogout = !($oAccount instanceof \RainLoop\Model\Account);