aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/lib/Direct/DirectFile.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dav/lib/Direct/DirectFile.php')
-rw-r--r--apps/dav/lib/Direct/DirectFile.php9
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;