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