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