- Модуль: webdav
- Путь к файлу: ~/bitrix/modules/webdav/classes/editdoccomponentbase.php
- Класс: CWebDavEditDocComponentBase
- Вызов: CWebDavEditDocComponentBase::deleteSession
protected function deleteSession($returnSession = false)
{
if($this->isExclusiveEdit())
{
return $returnSession? array() : true;
}
//delete user session from document edit
$webdav = $this->getWebdav();
if($returnSession)
{
$onlineEditor = CWebDavLogOnlineEdit::getList(array(), array(
'IBLOCK_ID' => $webdav->arParams['element_array']['IBLOCK_ID'],
'SECTION_ID' => $webdav->arParams['element_array']['IBLOCK_SECTION_ID'],
'ELEMENT_ID' => $webdav->arParams['element_array']['ID'],
'SERVICE' => $this->getServiceName(),
'SERVICE_FILE_ID' => $this->getFileId(),
'USER_ID' => $this->getUser()->getId(),
));
if(($onlineEditor = $onlineEditor->fetch()) && empty($onlineEditor['ID']))
{
return false;
}
//todo delete session not by ID. This is mistake?
return CWebDavLogOnlineEdit::delete(array(
'IBLOCK_ID' => $webdav->arParams['element_array']['IBLOCK_ID'],
'SECTION_ID' => $webdav->arParams['element_array']['IBLOCK_SECTION_ID'],
'ELEMENT_ID' => $webdav->arParams['element_array']['ID'],
'SERVICE' => $this->getServiceName(),
'SERVICE_FILE_ID' => $this->getFileId(),
'USER_ID' => $this->getUser()->getId(),
))? $onlineEditor : false;
}
return CWebDavLogOnlineEdit::delete(array(
'IBLOCK_ID' => $webdav->arParams['element_array']['IBLOCK_ID'],
'SECTION_ID' => $webdav->arParams['element_array']['IBLOCK_SECTION_ID'],
'ELEMENT_ID' => $webdav->arParams['element_array']['ID'],
'SERVICE' => $this->getServiceName(),
'SERVICE_FILE_ID' => $this->getFileId(),
'USER_ID' => $this->getUser()->getId(),
));
}