• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/bizprocdocument.php
  • Класс: BitrixDiskBizProcDocument
  • Вызов: BizProcDocument::canUserOperateDocument
static function canUserOperateDocument($operation, $userId, $documentId, $parameters = array())
{
	$documentId = intval($documentId);
	if($documentId <= 0)
	{
		throw new CBPArgumentNullException("documentId");
	}

	/** @var File $file */
	$file = File::loadById($documentId, array('STORAGE'));
	if(!$file)
	{
		return false;
	}
	$securityContext = $file->getStorage()->getSecurityContext($userId);
	$parameters["CreatedBy"] = $file->getCreatedBy();

	if($operation === CBPCanUserOperateOperation::ReadDocument)
	{
		return $file->canRead($securityContext);
	}
	elseif($operation === CBPCanUserOperateOperation::WriteDocument)
	{
		return $file->canUpdate($securityContext);
	}
	elseif($operation === CBPCanUserOperateOperation::StartWorkflow)
	{
		return $file->canStartBizProc($securityContext);
	}
	elseif($operation === CBPCanUserOperateOperation::ViewWorkflow)
	{
		return $file->canRead($securityContext);
	}
	elseif($operation === CBPCanUserOperateOperation::CreateWorkflow)
	{
		return CBPDocument::canUserOperateDocumentType(CBPCanUserOperateOperation::CreateWorkflow, $userId, self::generateDocumentComplexType($file->getStorageId()), $parameters);
	}

	return false;
}