• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/iblock.php
  • Класс: CWebDavIblock
  • Вызов: CWebDavIblock::appendRightsOnSections
static function appendRightsOnSections(array $sections, array $rights)
{
	$tasks = CWebDavIblock::GetTasks();
	$reformatRights = array();
	$i = 0;
	foreach ($rights as $letter => $groupCodes)
	{
		if(!is_array($groupCodes))
		{
			$groupCodes = array($groupCodes);
		}
		foreach ($groupCodes as $groupCode)
		{
			$reformatRights['n' . $i] = array(
				'GROUP_CODE' => $groupCode,
				'TASK_ID' => $tasks[$letter],//todo check isset!
			);
			$i++;
		}
		unset($groupCode);
	}
	unset($right);

	foreach ($sections as $section)
	{
		$sectionId = (int)$section['ID'];
		if($sectionId <= 0)
		{
			continue;
		}

		if (CIBlock::GetArrayByID($section['IBLOCK_ID'], "RIGHTS_MODE") === "E")
		{
			$rightObject = CWebDavIblock::_get_ib_rights_object('SECTION', $sectionId, $section['IBLOCK_ID']);
			$rightObject->SetRights(CWebDavTools::appendRights($rightObject, $reformatRights, $tasks));
		}
	}
	unset($section);
}