소스 검색

Merge pull request #20032 from nextcloud/bugfix/19878/allow-video-player-on-hide-download

Allow the video player on the hide download
tags/v19.0.0beta1
Roeland Jago Douma 4 년 전
부모
커밋
010b075c2f
No account linked to committer's email address
1개의 변경된 파일18개의 추가작업 그리고 8개의 파일을 삭제
  1. 18
    8
      apps/files_sharing/lib/Controller/ShareController.php

+ 18
- 8
apps/files_sharing/lib/Controller/ShareController.php 파일 보기

@@ -55,6 +55,7 @@ use OCP\AppFramework\Http\Template\PublicTemplateResponse;
use OCP\AppFramework\Http\Template\SimpleMenuAction;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Defaults;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\IConfig;
@@ -582,16 +583,16 @@ class ShareController extends AuthPublicShareController {
// Single file download
$this->singleFileDownloaded($share, $share->getNode());
} else {
if ($share->getHideDownload()) {
try {
if (!empty($files_list)) {
$this->fileListDownloaded($share, $files_list, $node);
} else {
// The folder is downloaded
$this->singleFileDownloaded($share, $share->getNode());
}
} catch (NotFoundException $e) {
return new NotFoundResponse();
}

if (!empty($files_list)) {
$this->fileListDownloaded($share, $files_list, $node);
} else {
// The folder is downloaded
$this->singleFileDownloaded($share, $share->getNode());
}
}
}

@@ -643,8 +644,13 @@ class ShareController extends AuthPublicShareController {
* @param Share\IShare $share
* @param array $files_list
* @param \OCP\Files\Folder $node
* @throws NotFoundException when trying to download a folder or multiple files of a "hide download" share
*/
protected function fileListDownloaded(Share\IShare $share, array $files_list, \OCP\Files\Folder $node) {
if ($share->getHideDownload() && count($files_list) > 1) {
throw new NotFoundException('Downloading more than 1 file');
}

foreach ($files_list as $file) {
$subNode = $node->get($file);
$this->singleFileDownloaded($share, $subNode);
@@ -656,8 +662,12 @@ class ShareController extends AuthPublicShareController {
* create activity if a single file was downloaded from a link share
*
* @param Share\IShare $share
* @throws NotFoundException when trying to download a folder of a "hide download" share
*/
protected function singleFileDownloaded(Share\IShare $share, \OCP\Files\Node $node) {
if ($share->getHideDownload() && $node instanceof Folder) {
throw new NotFoundException('Downloading a folder');
}

$fileId = $node->getId();


Loading…
취소
저장