diff options
Diffstat (limited to 'apps/dav/lib/Direct/DirectFile.php')
-rw-r--r-- | apps/dav/lib/Direct/DirectFile.php | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/apps/dav/lib/Direct/DirectFile.php b/apps/dav/lib/Direct/DirectFile.php index 45c2114747e..b9d1757cfc2 100644 --- a/apps/dav/lib/Direct/DirectFile.php +++ b/apps/dav/lib/Direct/DirectFile.php @@ -108,13 +108,16 @@ class DirectFile implements IFile { private function getFile() { if ($this->file === null) { $userFolder = $this->rootFolder->getUserFolder($this->direct->getUserId()); - $files = $userFolder->getById($this->direct->getFileId()); + $file = $userFolder->getFirstNodeById($this->direct->getFileId()); - if ($files === []) { + if (!$file) { throw new NotFound(); } + if (!$file instanceof File) { + throw new Forbidden("direct download not allowed on directories"); + } - $this->file = array_shift($files); + $this->file = $file; } return $this->file; |