From 1e4f9fc795dda2b1fe80e6f7013e273b7eef9a1a Mon Sep 17 00:00:00 2001 From: noackorama <noackorama@gmail.com> Date: Wed, 13 Oct 2021 17:06:30 +0200 Subject: [PATCH] check folder visibility --- app/controllers/files.php | 11 ++++++----- lib/classes/globalsearch/GlobalSearchFiles.php | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/controllers/files.php b/app/controllers/files.php index 5181f974a36..bfc2e98af10 100644 --- a/app/controllers/files.php +++ b/app/controllers/files.php @@ -387,10 +387,12 @@ class FilesController extends AuthenticatedController $this->all_files = []; $count_visible = 0; foreach ($all_file_refs as $file_ref) { - $vue_data = FilesystemVueDataManager::getFileVueData( - $file_ref->getFileType(), - $this->topFolder - ); + if ($file_ref->getFileType()->isVisible($GLOBALS['user']->id)) { + $vue_data = FilesystemVueDataManager::getFileVueData( + $file_ref->getFileType(), + $this->topFolder + ); + } if (isset($vue_data['download_url'])) { $this->all_files[] = $vue_data; if (++$count_visible === 5) break; @@ -471,7 +473,6 @@ class FilesController extends AuthenticatedController //] $folders = []; $new_file_refs = FileRef::findAll($GLOBALS['user']->id, $this->begin, $this->end, $this->course_id, $this->page_size, $offset); - //Group the file refs by their folder: foreach ($new_file_refs as $file_ref) { if (!is_array($folders[$file_ref->folder_id])) { diff --git a/lib/classes/globalsearch/GlobalSearchFiles.php b/lib/classes/globalsearch/GlobalSearchFiles.php index 7d36860a00d..e0cd9f4356f 100644 --- a/lib/classes/globalsearch/GlobalSearchFiles.php +++ b/lib/classes/globalsearch/GlobalSearchFiles.php @@ -191,7 +191,7 @@ class GlobalSearchFiles extends GlobalSearchModule implements GlobalSearchFullte return Folder::find($fileref->folder_id)->getTypedFolder(); }); - if (!$folder->isFileDownloadable($fileref, $GLOBALS['user']->id)) { + if (!($folder->isVisible($GLOBALS['user']->id) && $folder->isReadable($GLOBALS['user']->id))) { return null; } -- GitLab