- Модуль: 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');
}