• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/event/projecteventprocessor.php
  • Класс: BitrixTasksInternalsCounterEventProjectEventProcessor
  • Вызов: ProjectEventProcessor::getGroupByPerms
private function getGroupByPerms(array $permIds): array
{
	if (empty($permIds))
	{
		return [];
	}

	if (!Loader::includeModule('socialnetwork'))
	{
		return [];
	}

	$permIds = array_map(function ($el) {
		return (int) $el;
	}, $permIds);

	$sql = "
		SELECT SF.ENTITY_ID
		FROM ". FeaturePermTable::getTableName() ." SFP
		INNER JOIN ". FeatureTable::getTableName() ." SF
			ON SF.ID = SFP.FEATURE_ID
			AND SF.ENTITY_TYPE = '". FeatureTable::FEATURE_ENTITY_TYPE_GROUP ."'
		WHERE
			SFP.ID IN (". implode(",", $permIds) .")
	";

	$res = Application::getConnection()->query($sql);
	$rows = $res->fetchAll();

	$groupIds = [];
	foreach ($rows as $row)
	{
		$groupIds[] = $row['ENTITY_ID'];
	}

	return array_unique($groupIds);
}