• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/googleproxy.php
  • Класс: CSocServGoogleProxyOAuth
  • Вызов: CSocServGoogleProxyOAuth::AuthorizeUser
public function AuthorizeUser($socservUserFields, $bSave = false)
{
	if(!isset($socservUserFields['XML_ID']) || $socservUserFields['XML_ID'] == '')
	{
		return false;
	}

	if(!isset($socservUserFields['EXTERNAL_AUTH_ID']) || $socservUserFields['EXTERNAL_AUTH_ID'] == '')
	{
		return false;
	}

	$dbSocUser = UserTable::getList([
		'filter' => [
			'=XML_ID'=>$socservUserFields['XML_ID'],
			'=EXTERNAL_AUTH_ID'=>$socservUserFields['EXTERNAL_AUTH_ID']
		],
		'select' => ["ID", "USER_ID", "ACTIVE" => "USER.ACTIVE", "PERSONAL_PHOTO"],
	]);
	$socservUser = $dbSocUser->fetch();

	if(!empty($socservUserFields['USER_ID']))
	{
		if(!$socservUser)
		{
			$result = UserTable::add(UserTable::filterFields($socservUserFields));
		}
		else
		{
			$result = UserTable::update($socservUser['ID'], UserTable::filterFields($socservUserFields));
		}
	}
	else
	{
		return false;
	}

	return $result->isSuccess();
}