- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sharing/sharinguser.php
- Класс: BitrixCalendarSharingSharingUser
- Вызов: SharingUser::createUser
private function createUser(array $userParams = []): ?BitrixMainEO_User
{
$name = $userParams['NAME'] ?? 'Guest';
$lastName = $userParams['LAST_NAME'] ?? '';
$personalPhone = '';
$personalMailbox = '';
if (SharingEventManager::isEmailCorrect($userParams['CONTACT_DATA']))
{
$personalMailbox = $userParams['CONTACT_DATA'];
}
if (SharingEventManager::isPhoneNumberCorrect($userParams['CONTACT_DATA']))
{
$personalPhone = $userParams['CONTACT_DATA'];
}
$login = 'calendar_sharing_' . random_int(10000, 99999) . BitrixMainSecurityRandom::getString(8);
$password = md5($login . '|' . random_int(10000, 99999). '|' . time());
$xmlId = self::EXTERNAL_AUTH_ID . '|' . md5($login . $password . time() . BitrixMainSecurityRandom::getString(8));
$userManager = new CUser();
$userId = $userManager->add([
'NAME' => $name,
'LAST_NAME' => $lastName,
'LOGIN' => $login,
'PASSWORD' => $password,
'CONFIRM_PASSWORD' => $password,
'EXTERNAL_AUTH_ID' => self::EXTERNAL_AUTH_ID,
'XML_ID' => $xmlId,
'ACTIVE' => 'Y',
'PERSONAL_PHONE' => $personalPhone,
'PERSONAL_MAILBOX' => $personalMailbox,
]);
if ($userId)
{
if (Loader::includeModule("socialnetwork"))
{
CSocNetUserPerms::SetPerm($userId, 'message', SONET_RELATIONS_TYPE_NONE);
}
return BitrixMainUserTable::getById($userId)->fetchObject();
}
return null;
}