• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/classes/symlinkhelper.php
  • Класс: CWebDavSymlinkHelper
  • Вызов: CWebDavSymlinkHelper::createInviteOnSection
static function createInviteOnSection(array $sectionTargetData, array $sectionLinkData, $typeLibrary = self::ENTITY_TYPE_USER)
{
	if(
		empty($sectionLinkData['IBLOCK_ID']) ||
		empty($sectionLinkData['ID']) ||
		empty($sectionLinkData['NAME']) ||
		empty($sectionLinkData['CREATED_BY'])
	)
	{
		return false;
	}
	if(empty($sectionTargetData['IBLOCK_ID']) || empty($sectionTargetData['IBLOCK_SECTION_ID']))
	{
		return false;
	}

	$typeLibrary = mb_strtolower($typeLibrary);
	if($typeLibrary != self::ENTITY_TYPE_USER && $typeLibrary != self::ENTITY_TYPE_GROUP && $typeLibrary != self::ENTITY_TYPE_SHARED)
	{
		return false;
	}

	if(!CWebDavTools::isIntranetUser($sectionLinkData['INVITE_USER_ID']))
	{
		return false;
	}

	$exists = BitrixWebdavFolderInviteTable::getRow(array('filter' => array(
		'INVITE_USER_ID' => $sectionLinkData['INVITE_USER_ID'],
		'IBLOCK_ID' => $sectionLinkData['IBLOCK_ID'],
		'SECTION_ID' => $sectionLinkData['ID'],
	), 'select' => array('ID', 'LINK_SECTION_ID', 'IS_DELETED', 'IS_APPROVED')));
	//rewrite old self-deleted by user invite
	if($exists && !$exists['IS_DELETED'] && $exists['IS_APPROVED'])
	{
		return true;
	}

	if($typeLibrary == self::ENTITY_TYPE_GROUP)
	{
		BitrixWebdavFolderInviteTable::addIfNonExists(array(
			'INVITE_USER_ID' => $sectionLinkData['CREATED_BY'],
			'USER_ID' => $sectionLinkData['CREATED_BY'],
			'IBLOCK_ID' => $sectionLinkData['IBLOCK_ID'],
			'SECTION_ID' => $sectionLinkData['ID'],
			'IS_APPROVED' => CWebDavTools::allowAutoconnectShareGroupFolder(),
			'IS_DELETED' => false,
			'CAN_FORWARD' => false,
		));
	}
	elseif($typeLibrary == self::ENTITY_TYPE_USER)
	{
	}

	return true;
}