aboutsummaryrefslogtreecommitdiff
path: root/lib/filesystem/PermissionEnabledFolder.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/filesystem/PermissionEnabledFolder.php')
-rw-r--r--lib/filesystem/PermissionEnabledFolder.php23
1 files changed, 22 insertions, 1 deletions
diff --git a/lib/filesystem/PermissionEnabledFolder.php b/lib/filesystem/PermissionEnabledFolder.php
index d41ebe3..c286c53 100644
--- a/lib/filesystem/PermissionEnabledFolder.php
+++ b/lib/filesystem/PermissionEnabledFolder.php
@@ -118,6 +118,27 @@ class PermissionEnabledFolder extends StandardFolder
}
/**
+ * @return FileType[]
+ */
+ public function getFiles()
+ {
+ return array_filter(parent::getFiles(), function($file) {
+ return $this->isFileVisible($file->getFileRef(), $GLOBALS['user']->id);
+ });
+ }
+
+ /**
+ * Determines if a user may see the file.
+ * @param FileRef|string $fileref_or_id
+ * @param string $user_id
+ * @return bool
+ */
+ public function isFileVisible($fileref_or_id, $user_id)
+ {
+ return $this->isReadable($user_id);
+ }
+
+ /**
* @param $fileref_or_id
* @param $user_id
* @return bool
@@ -127,7 +148,7 @@ class PermissionEnabledFolder extends StandardFolder
$fileref = FileRef::toObject($fileref_or_id);
if (is_object($fileref)) {
- if ($this->isVisible($user_id) && $this->isReadable($user_id)) {
+ if ($this->isVisible($user_id) && $this->isFileVisible($fileref, $user_id)) {
return $fileref->terms_of_use->isDownloadable($this->range_id, $this->range_type, true, $user_id);
}
}