- Модуль: webdav
- Путь к файлу: ~/bitrix/modules/webdav/classes/iblockbizproc.php
- Класс: CIBlockDocumentWebdav
- Вызов: CIBlockDocumentWebdav::UnlockDocument
static function UnlockDocument($documentId, $workflowId)
{
$documentId = intval($documentId);
if ($documentId <= 0)
throw new CBPArgumentNullException("documentId");
$diskId = self::processGetDiskIdByDocId($documentId);
if($diskId !== null)
{
return self::proxyToDisk(__FUNCTION__, array($diskId, $workflowId));
}
global $DB;
$strSql = "
SELECT * FROM b_iblock_element_lock
WHERE IBLOCK_ELEMENT_ID = ".intval($documentId)."
";
$z = $DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__);
if($z->Fetch())
{
$strSql = "
DELETE FROM b_iblock_element_lock
WHERE IBLOCK_ELEMENT_ID = ".intval($documentId)."
AND (LOCKED_BY = '".$DB->ForSQL($workflowId, 32)."' OR '".$DB->ForSQL($workflowId, 32)."' = '')
";
$z = $DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__);
$result = $z->AffectedRowsCount();
}
else
{//Success unlock when there is no locks at all
$result = 1;
}
if ($result > 0)
{
$db_events = GetModuleEvents("webdav", "CIBlockDocumentWebdav_OnUnlockDocument");
while ($arEvent = $db_events->Fetch())
ExecuteModuleEventEx($arEvent, array("webdav", "CIBlockDocumentWebdav", $documentId));
}
return $result > 0;
}