• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sharing/sharinguser.php
  • Класс: BitrixCalendarSharingSharingUser
  • Вызов: SharingUser::updateUserPersonalInfo
private function updateUserPersonalInfo(int $userId, array $userParams = []): void
{
	$user = CUser::GetByID($userId)->Fetch();

	if (($user['EXTERNAL_AUTH_ID'] ?? null) !== 'calendar_sharing')
	{
		return;
	}

	if (
		$user['NAME'] === $userParams['NAME']
		&& (
			$user['PERSONAL_PHONE'] === $userParams['CONTACT_DATA']
			|| $user['PERSONAL_MAILBOX'] === $userParams['CONTACT_DATA']
		)
	)
	{
		return;
	}

	$name = $userParams['NAME'] ?? 'Guest';
	$personalPhone = '';
	$personalMailbox = '';

	if (SharingEventManager::isEmailCorrect($userParams['CONTACT_DATA']))
	{
		$personalMailbox = $userParams['CONTACT_DATA'];
	}
	if (SharingEventManager::isPhoneNumberCorrect($userParams['CONTACT_DATA']))
	{
		$personalPhone = $userParams['CONTACT_DATA'];
	}

	$userManager = new CUser();
	$userManager->update($userId, [
		'NAME' => $name,
		'PERSONAL_PHONE' => $personalPhone,
		'PERSONAL_MAILBOX' => $personalMailbox,
	]);
}