aboutsummaryrefslogtreecommitdiff
path: root/lib/models/Courseware
diff options
context:
space:
mode:
authorRon Lucke <lucke@elan-ev.de>2024-02-02 07:42:27 +0000
committerRon Lucke <lucke@elan-ev.de>2024-02-02 07:42:27 +0000
commit6b7b04e06bcae3fc0e31d987336281a1c2ba4cc7 (patch)
tree0c157ae396fc20481b1b6b1e8a9be0a30db963e2 /lib/models/Courseware
parentfeb28852d82475ebcd0573807e5d68481d0fe5b8 (diff)
fixes #3426 and #3427
Closes #3426 and #3427 Merge request studip/studip!2452
Diffstat (limited to 'lib/models/Courseware')
-rw-r--r--lib/models/Courseware/BlockTypes/Folder.php43
1 files changed, 22 insertions, 21 deletions
diff --git a/lib/models/Courseware/BlockTypes/Folder.php b/lib/models/Courseware/BlockTypes/Folder.php
index bc34f85..2eed4b0 100644
--- a/lib/models/Courseware/BlockTypes/Folder.php
+++ b/lib/models/Courseware/BlockTypes/Folder.php
@@ -55,27 +55,28 @@ class Folder extends BlockType
if ($folder) {
$typedFolder = $folder->getTypedFolder();
$payload['folder-type'] = $typedFolder->folder_type;
-
- foreach ($typedFolder->getFiles() as $folderFile) {
- $file['id'] = $folderFile->id;
- $file['attributes'] = [
- 'name' => $folderFile->name,
- 'mime-type' => $folderFile->mime_type,
- 'filesize' => (int) $folderFile->size,
- 'mkdate' => date('c', $folderFile->mkdate),
- ];
- $file['relationships'] = [
- 'owner' => [
- 'data' => ['type' => 'users', 'id' => $folderFile->user_id],
- 'meta' => ['name' => $folderFile->getFileRef()->getAuthorName()]
- ]
- ];
- $file['meta'] = [
- 'download-url' => $folderFile->getDownloadURL(),
- ];
-
- if ($this->filePermission($typedFolder, $file, $user)) {
- array_push($payload['files'], $file);
+ if ($typedFolder->isReadable($user->id)) {
+ foreach ($typedFolder->getFiles() as $folderFile) {
+ $file['id'] = $folderFile->id;
+ $file['attributes'] = [
+ 'name' => $folderFile->name,
+ 'mime-type' => $folderFile->mime_type,
+ 'filesize' => (int) $folderFile->size,
+ 'mkdate' => date('c', $folderFile->mkdate),
+ ];
+ $file['relationships'] = [
+ 'owner' => [
+ 'data' => ['type' => 'users', 'id' => $folderFile->user_id],
+ 'meta' => ['name' => $folderFile->getFileRef()->getAuthorName()]
+ ]
+ ];
+ $file['meta'] = [
+ 'download-url' => $folderFile->getDownloadURL(),
+ ];
+
+ if ($this->filePermission($typedFolder, $file, $user)) {
+ array_push($payload['files'], $file);
+ }
}
}
}