diff --git a/lib/models/Courseware/BlockTypes/Folder.php b/lib/models/Courseware/BlockTypes/Folder.php index bc34f854f24fc547829deeed13a9e04058dca5c8..2eed4b01ef1fac71ea60875587737959fc426f50 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); + } } } } diff --git a/resources/vue/components/courseware/blocks/CoursewareFolderBlock.vue b/resources/vue/components/courseware/blocks/CoursewareFolderBlock.vue index 0eefa6cc040e727fe86f0cecd073d0ed29121478..9d64859f4830dfc4d79ee405cc831e4107fee788 100644 --- a/resources/vue/components/courseware/blocks/CoursewareFolderBlock.vue +++ b/resources/vue/components/courseware/blocks/CoursewareFolderBlock.vue @@ -11,6 +11,11 @@ > <template #content> <div v-if="currentTitle !== ''" class="cw-block-title">{{ currentTitle }}</div> + <courseware-companion-box + v-if="folderTypeHasChanged && canEdit" + mood="pointing" + :msgCompanion="$gettext('Der Ordnertyp wurde nach der Erstellung des Blocks geändert! Bitte überprüfen Sie die Einstellungen.')" + /> <div v-if="isHomework" class="cw-block-folder-info"> <p> {{ @@ -181,13 +186,13 @@ export default { termsOfUse: 'terms-of-use/all', }), folderType() { - return this.block?.attributes?.payload?.type; + return this.block?.attributes?.payload?.['folder-type']; }, storedFolderType() { - return this.block?.attributes?.payload?.folder_type; + return this.block?.attributes?.payload?.type; }, folderTypeHasChanged() { - return this.folderType === this.storedFolderType; + return this.folderType !== this.storedFolderType; }, folderId() { return this.block?.attributes?.payload?.folder_id;