• Модуль: webdav
  • Путь к файлу: ~/bitrix/modules/webdav/lib/folderinvite.php
  • Класс: BitrixWebdavFolderInviteTable
  • Вызов: FolderInviteTable::onDelete
static function onDelete(Event $event)
{
	$row = static::getRowById($event->getParameter('id'));
	if(!$row)
	{
		return;
	}
	global $USER;
	//todo unshare. Fork invite. Hack
	//not fork if owner by invite unshare user.
	if(!$row['IS_DELETED'] && $row['INVITE_USER_ID'] != $row['USER_ID'] && $row['USER_ID'] != $USER->getId())
	{
		$scalarFields = array();
		foreach (static::getEntity()->getFields() as $fieldName => $field)
		{
			if($field instanceof EntityScalarField)
			{
				$scalarFields[$fieldName] = true;
			}
		}
		unset($field);

		$forkRow = array_intersect_key($row, $scalarFields);
		unset($forkRow['ID']);
		$forkRow['CAN_FORWARD'] = (bool)$forkRow['CAN_FORWARD'];
		$forkRow['CAN_EDIT'] = (bool)$forkRow['CAN_EDIT'];
		$forkRow['IS_DELETED'] = true;
		$forkRow['IS_APPROVED'] = false;
		BitrixWebdavFolderInviteTable::add($forkRow);
	}
	CWebDavSymlinkHelper::sendNotifyUnshare($row);
	self::deleteSymlinkSections($row);
}