• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/access/model/groupregistry.php
  • Класс: Bitrix\Tasks\Access\Model\GroupRegistry
  • Вызов: GroupRegistry::load
public function load($groupIds): self
{
	if (!Loader::includeModule("socialnetwork"))
	{
		return $this;
	}

	if (!is_array($groupIds))
	{
		$groupIds = [$groupIds];
	}

	$groupIds = array_unique($groupIds);
	$groupIds = array_diff($groupIds, array_keys($this->storage));
	if (empty($groupIds))
	{
		return $this;
	}

	foreach ($groupIds as $id)
	{
		$this->storage[$id] = null;
	}

	$res = WorkgroupTable::query()
		->addSelect('ID')
		->addSelect('CLOSED')
		->whereIn('ID', $groupIds)
		->exec();

	while ($row = $res->fetch())
	{
		$this->storage[$row['ID']] = [
			'CLOSED' => $row['CLOSED'],
			'TASKS_ENABLED' => false
		];
	}

	$isTasksEnabled = \CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $groupIds, 'tasks');
	if (is_array($isTasksEnabled))
	{
		foreach ($isTasksEnabled as $id => $value)
		{
			if (!array_key_exists($id, $this->storage))
			{
				continue;
			}
			$this->storage[$id]['TASKS_ENABLED'] = $value;
		}
	}

	return $this;
}