• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/rest.php
  • Класс: CSocNetLogRestService
  • Вызов: CSocNetLogRestService::inviteGroupUsers
static function inviteGroupUsers($arFields): array
{
	$groupID = $arFields['GROUP_ID'] ?? null;
	$arUserID = $arFields['USER_ID'] ?? null;
	$message = $arFields['MESSAGE'] ?? null;

	if ((int)$groupID <= 0)
	{
		throw new ArgumentException('Wrong group ID');
	}

	if (
		(!is_array($arUserID) && (int)$arUserID <= 0)
		|| (is_array($arUserID) && count($arUserID) <= 0)
	)
	{
		throw new ArgumentException('Wrong user IDs');
	}

	if (!is_array($arUserID))
	{
		$arUserID = array($arUserID);
	}

	$arSuccessID = array();

	$dbRes = CSocNetGroup::GetList(array(), array(
		"ID" => $groupID,
		"CHECK_PERMISSIONS" => self::getCurrentUserId(),
	));
	$arGroup = $dbRes->Fetch();
	if (!is_array($arGroup))
	{
		throw new ObjectNotFoundException('Socialnetwork group not found');
	}

	foreach ($arUserID as $user_id)
	{
		$isCurrentUserTmp = (self::getCurrentUserId() === (int)$user_id);
		$canInviteGroup = CSocNetUserPerms::CanPerformOperation(self::getCurrentUserId(), $user_id, "invitegroup", self::isCurrentUserAdmin());
		$user2groupRelation = CSocNetUserToGroup::GetUserRole($user_id, $arGroup["ID"]);

		if (
			!$isCurrentUserTmp && $canInviteGroup && !$user2groupRelation
			&& CSocNetUserToGroup::SendRequestToJoinGroup(self::getCurrentUserId(), $user_id, $arGroup["ID"], $message, true)
		)
		{
			$arSuccessID[] = $user_id;
		}
	}

	return $arSuccessID;
}