- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/internals/eventservice/push/workgroupsender.php
- Класс: BitrixSocialnetworkInternalsEventServicePushWorkgroupSender
- Вызов: WorkgroupSender::sendForUserAddedAndRemoved
public function sendForUserAddedAndRemoved(Event $event, array $notVisibleGroupsUsers): void
{
$eventData = $event->getData();
$groupId = $event->getGroupId();
$pushParams = [
'module_id' => 'socialnetwork',
'command' => $event->getType(),
'params' => [ 'GROUP_ID' => $groupId ],
];
if (($eventData['ROLE'] ?? null) === UserToGroupTable::ROLE_REQUEST)
{
PushService::addEvent([ $eventData['USER_ID'] ], $pushParams);
}
else
{
$subscribedUsers = $this->getSubscribedUsers();
if (!array_key_exists('USER_ID', $eventData))
{
$eventData['USER_ID'] = [];
}
if (!is_array($eventData['USER_ID']))
{
$eventData['USER_ID'] = [ $eventData['USER_ID'] ];
}
$recipients = (
isset($notVisibleGroupsUsers[$groupId])
? array_intersect($subscribedUsers, array_merge($eventData['USER_ID'], $notVisibleGroupsUsers[$groupId]))
: $subscribedUsers
);
PushService::addEvent($recipients, $pushParams);
}
}