- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/internals/project/pull/pullsender.php
- Класс: BitrixTasksInternalsProjectPullPullSender
- Вызов: PullSender::sendForUserAddedAndRemoved
static function sendForUserAddedAndRemoved(Event $event, array $notVisibleGroupsUsers): void
{
$eventData = $event->getData();
$groupId = $event->getGroupId();
$pushParams = [
'module_id' => 'tasks',
'command' => $event->getType(),
'params' => ['GROUP_ID' => $groupId],
];
if (array_key_exists($groupId, $notVisibleGroupsUsers))
{
if ($eventData['ROLE'] !== UserToGroupTable::ROLE_REQUEST)
{
if (!array_key_exists('USER_ID', $eventData))
{
$eventData['USER_ID'] = [];
}
if (!is_array($eventData['USER_ID']))
{
$eventData['USER_ID'] = [$eventData['USER_ID']];
}
$recipients = array_unique(array_merge($eventData['USER_ID'], $notVisibleGroupsUsers[$groupId]));
PushService::addEvent($recipients, $pushParams);
}
}
elseif ($eventData['ROLE'] === UserToGroupTable::ROLE_REQUEST)
{
PushService::addEvent($eventData['USER_ID'], $pushParams);
}
else
{
PushService::addEventByTag(PullDictionary::PULL_PROJECTS_TAG, $pushParams);
}
}