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