• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskwebservice.php
  • Класс: CTasksWebService
  • Вызов: CTasksWebService::DeleteAttachment
function DeleteAttachment($listName, $listItemID, $url)
{
	if (!$this->__Init())
		return $this->error;

	if (!$listName_original = CIntranetUtils::checkGUID($listName))
	{
		return new CSoapFault('Data error', 'Wrong GUID - '.$listName);
	}

	$listItemID = intval($listItemID);

	$pos = mb_strrpos($url, '/');
	if ($pos)
		$fileName = ToLower(str_replace(array('/', '\', '..'), '', mb_substr($url, $pos + 1))); // minor security

	if (!$fileName)
		return new CSoapFault('Wrong file', 'Wrong file URL');

	$dbRes = CTaskFiles::GetList(array(), array("TASK_ID" => $listItemID));

	while ($taskFile = $dbRes->Fetch())
	{
		$FILE_NAME = ToLower(basename(CFile::GetPath($taskFile["FILE_ID"])));

		if ($FILE_NAME == $fileName)
		{
			$rsTask = CTasks::GetList(array(), array("ID" => $listItemID), array("ID"));
			if ($arTask = $rsTask->Fetch())
			{
				if (CTasks::CanCurrentUserEdit($arTask["ID"]))
				{
					// We got this task only if user has rights on edit it.
					CTaskFiles::Delete($taskFile["TASK_ID"], $taskFile["FILE_ID"]);
				}
			}

			break;
		}
	}

	return array('DeleteAttachmentResult' => '');
}