• Модуль: 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)); }