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