• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Sale/Order/BuyerService.php
  • Класс: Bitrix\Crm\Service\Sale\Order\BuyerService
  • Вызов: BuyerService::attachUserToBuyers
public function attachUserToBuyers(int $userId): Result
{
	$result = new Result();

	$isExtranetUser = false;
	if (Loader::includeModule('bitrix24'))
	{
		$isExtranetUser = CBitrix24::IsExtranetUser($userId);
	}
	elseif (Loader::includeModule('intranet'))
	{
		$isExtranetUser = Util::isExtranetUser($userId) || !Util::isIntranetUser($userId);
	}

	if (!$isExtranetUser)
	{
		$result->addError(
			new Error('User is not extranet')
		);
		return $result;
	}

	// set external auth id
	$userNotHasExternalAuth = UserTable::getRow([
		'select' => [
			'ID',
		],
		'filter' => [
			'=ID' => $userId,
			'=EXTERNAL_AUTH_ID' => null,
		],
	]) !== null;
	if ($userNotHasExternalAuth)
	{
		$user = new CUser();
		$user->Update($userId, [
			'EXTERNAL_AUTH_ID' => Buyer::AUTH_ID,
		]);

		if ($user->LAST_ERROR)
		{
			$result->addError(
				new Error($user->LAST_ERROR)
			);
			return $result;
		}
	}

	// add to group
	CUser::AppendUserGroup($userId, BuyerGroup::getDefaultGroups());

	return $result;
}