• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/invitation/register.php
  • Класс: BitrixIntranetInvitationRegister
  • Вызов: Register::inviteNewUsers
static function inviteNewUsers($SITE_ID, $fields, &$errors = [])
{
	if (!is_array($fields) || empty($fields))
	{
		return false;
	}

	$res = self::checkItems($fields["ITEMS"], $errors);
	if (!empty($errors))
	{
		return false;
	}

	$emailItems = $res["EMAIL_ITEMS"];
	$phoneItems = $res["PHONE_ITEMS"];

	$resPhone =	self::checkExistingUserByPhone($phoneItems);
	$resEmail = self::checkExistingUserByEmail($emailItems);

	if (
		empty($resPhone["PHONE_TO_REGISTER"])
		&& empty($resPhone["PHONE_TO_REINVITE"])
		&& empty($resEmail["EMAIL_TO_REGISTER"])
		&& empty($resEmail["EMAIL_TO_REINVITE"])
		&& empty($resEmail["TRANSFER_USER"])
	)
	{
		if (!empty($resEmail["EMAIL_EXIST"]))
		{
			$errors[] = Loc::getMessage("INTRANET_INVITATION_USER_EXIST_ERROR", [
				"#EMAIL_LIST#" => implode(', ', $resEmail["EMAIL_EXIST"]),
			]);

		}
		if (!empty($resPhone["PHONE_EXIST"]))
		{
			$errors[] = Loc::getMessage("INTRANET_INVITATION_USER_PHONE_EXIST_ERROR", [
				"#PHONE_LIST#" => implode(', ', $resPhone["PHONE_EXIST"]),
			]);
		}

		return false;
	}

	$messageText = Loc::getMessage("INTRANET_INVITATION_INVITE_MESSAGE_TEXT");

	//reinvite users by email
	$reinvitedUserIds = [];
	foreach ($resEmail["EMAIL_TO_REINVITE"] as $userData)
	{
		CIntranetInviteDialog::InviteUser($userData, $messageText, array('checkB24' => false));
		$reinvitedUserIds[] = (int)$userData['ID'];
	}
	// TODO: reinvite: self::InviteUserByPhone($userData)

	$transferedUserIds = [];
	if (!empty($resEmail["TRANSFER_USER"]))
	{
		$transferedUserIds = self::transferUser($resEmail["TRANSFER_USER"], $errors);
	}

	$phoneUserIds = [];
	if (!empty($resPhone["PHONE_TO_REGISTER"]))
	{
		$phoneUserIds = self::registerUsersByPhone($resPhone["PHONE_TO_REGISTER"], $errors);
	}

	$emailUserIds = [];
	if (!empty($resEmail["EMAIL_TO_REGISTER"]))
	{
		$emailUserIds = self::registerUsersByEmail($resEmail["EMAIL_TO_REGISTER"], $errors);
	}

	if (!empty($errors))
	{
		return false;
	}

	return array_merge($phoneUserIds, $emailUserIds, $reinvitedUserIds, $transferedUserIds);
}