- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/invite_dialog.php
- Класс: CIntranetInviteDialog
- Вызов: CIntranetInviteDialog::RegisterUser
static function RegisterUser($userData, $SITE_ID = SITE_ID)
{
$bExtranetUser = (!isset($userData['UF_DEPARTMENT']) || empty($userData['UF_DEPARTMENT']));
$strPassword = self::GeneratePassword($SITE_ID, $bExtranetUser);
$arUser = [
'LOGIN' => $userData['LOGIN'] ?? $userData['EMAIL'],
'EMAIL' => $userData['EMAIL'],
'PASSWORD' => $strPassword,
'CONFIRM_CODE' => $userData['CONFIRM_CODE'],
'NAME' => $userData['NAME'],
'LAST_NAME' => $userData['LAST_NAME'],
'GROUP_ID' => $userData['GROUP_ID'],
'LID' => $SITE_ID,
'UF_DEPARTMENT' => (is_array($userData['UF_DEPARTMENT']) ? $userData['UF_DEPARTMENT'] : [$userData['UF_DEPARTMENT']]),
'LANGUAGE_ID' => ($site = CSite::GetArrayByID($SITE_ID)) ? $site['LANGUAGE_ID'] : LANGUAGE_ID,
];
if (isset($userData['PHONE_NUMBER']))
{
$arUser['PHONE_NUMBER'] = $userData['PHONE_NUMBER'];
$arUser['PERSONAL_MOBILE'] = $userData['PHONE_NUMBER'];
}
if(isset($userData['ACTIVE']))
{
$arUser['ACTIVE'] = $userData['ACTIVE'];
}
if(isset($userData['XML_ID']))
{
$arUser['XML_ID'] = $userData['XML_ID'];
}
$obUser = new CUser;
$res = $obUser->Add($arUser);
if ($res)
{
$userFields = $arUser;
$userFields['ID'] = $res;
foreach(GetModuleEvents('intranet', 'OnRegisterUser', true) as $arEvent)
{
ExecuteModuleEventEx($arEvent, [ $userFields ]);
}
}
return ($res ?: explode('
', $obUser->LAST_ERROR));
}