• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/lib/invitedispatcher.php
  • Класс: BitrixWebdavInviteDispatcher
  • Вызов: InviteDispatcher::getSectionDataByAttachObject
private function getSectionDataByAttachObject(array $attachObject)
{
	if(empty($attachObject['type']))
	{
		throw new BitrixMainArgumentException('type', 'attachObject');
	}
	if(!isset($attachObject['id']))
	{
		throw new BitrixMainArgumentException('id', 'attachObject');
	}
	if($attachObject['type'] == CWebDavSymlinkHelper::ENTITY_TYPE_GROUP)
	{
		$data = CWebDavIblock::getRootSectionDataForGroup((int)$attachObject['id']);
		$data['SOCNET_GROUP_ID'] = $attachObject['id'];
		return $data;
	}
	if($attachObject['type'] == CWebDavSymlinkHelper::ENTITY_TYPE_USER)
	{
		$sectionId = (int)$attachObject['id'];
		$sectionData = CIBlockSection::getList(
			array(),
			array('ID' => $sectionId, 'CHECK_PERMISSIONS' => 'Y'),
			false,
			array('SOCNET_GROUP_ID', 'IBLOCK_ID', 'CREATED_BY', 'NAME')
		);

		if(!$sectionData || !($sectionData = $sectionData->fetch()))
		{
			return array();
		}

		$allowableIblock = false;
		$iblockType = false;
		foreach(array('user_files', 'group_files', 'shared_files',) as $type)
		{
			$wdIblockOptions = CWebDavIblock::libOptions($type, false, SITE_ID);
			if (is_set($wdIblockOptions, 'id') && (intval($wdIblockOptions['id']) > 0))
			{
				if($sectionData['IBLOCK_ID'] == $wdIblockOptions['id'])
				{
					$allowableIblock = true;
					$iblockType = $type;
				}
			}
		}
		if(!$allowableIblock)
		{
			return array();
		}


		CWebDavSymlinkHelper::setIblockIdForSectionId($sectionId, $sectionData['IBLOCK_ID']);

		return array(
			'NAME' => $sectionData['NAME'],
			'IBLOCK_ID' => $sectionData['IBLOCK_ID'],
			'IBLOCK_TYPE' => $iblockType,
			'SECTION_ID' => $sectionId,
			'CREATED_BY' => $sectionData['CREATED_BY'],
			'SOCNET_GROUP_ID' => isset($sectionData['SOCNET_GROUP_ID'])? $sectionData['SOCNET_GROUP_ID'] : null,
		);
	}
	throw new BitrixMainArgumentException('Wrong type', 'attachObject');
}