- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/bizprocdocument.php
- Класс: BitrixDiskBizProcDocument
- Вызов: BizProcDocument::unPublishDocument
static function unPublishDocument($documentId)
{
$documentId = intval($documentId);
if($documentId <= 0)
{
throw new CBPArgumentNullException("documentId");
}
/** @var File $file */
$file = File::loadById($documentId, array('STORAGE'));
if(!$file)
{
return false;
}
$rightsManager = Driver::getInstance()->getRightsManager();
$specificRights = $rightsManager->getSpecificRights($file);
if(!empty($specificRights))
{
return false;
}
$newNegativeRights = array();
//we have only inherited rights. Now we will set alone right CR.
foreach($rightsManager->getAllListNormalizeRights($file) as $right)
{
$newNegativeRights[] = array(
'ACCESS_CODE' => $right['ACCESS_CODE'],
'TASK_ID' => $right['TASK_ID'],
'NEGATIVE' => 1,
);
}
unset($right);
$newNegativeRights[] = array(
'ACCESS_CODE' => 'CR',
'TASK_ID' => $rightsManager->getTaskIdByName($rightsManager::TASK_FULL),
);
return $rightsManager->set($file, $newNegativeRights);
}