/** * Returns true if current user has read access to the file. * @param array $params Allowed keys: hash. * @param int $userId Current user's id. * @return bool */ public static function checkUserReadAccess(array $params, $userId) { if (!\Bitrix\Disk\ExternalLink::isValidValueForField('HASH', $params['hash'])) { //bad hash return false; } $externalLink = \Bitrix\Disk\ExternalLink::load(array('=HASH' => $params['hash']), array('FILE')); if (!$externalLink || $externalLink->isExpired() || $externalLink->hasPassword()) { //could not make preview return false; } return true; }
protected function findLink() { $this->externalLink = \Bitrix\Disk\ExternalLink::load(array('=HASH' => $this->hash), array('FILE')); if (!$this->externalLink || $this->externalLink->isExpired()) { throw new \Bitrix\Main\SystemException('Invalid external link'); } return $this; }
/** * Check success view file in service. * @param FileData $fileData * @return bool */ public function checkViewFile(FileData $fileData) { if (!$this->checkRequiredInputParams($fileData->toArray(), array('id'))) { return null; } if (!ExternalLink::isValidValueForField('HASH', $fileData->getId(), $this->errorCollection)) { return false; } /** @var ExternalLink $extLinkModel */ $extLinkModel = ExternalLink::load(array('=HASH' => $fileData->getId())); if (!$extLinkModel) { $this->errorCollection->add(array(new Error(Loc::getMessage('DISK_GOOGLE_VIEWER_HANDLER_ERROR_COULD_NOT_FIND_EXT_LINK'), self::ERROR_COULD_NOT_FIND_EXT_LINK))); return null; } return (bool) $extLinkModel->getDownloadCount(); }