From 07ed05bdc8cd23adda42cd2d79af4eb4e6bf62fa Mon Sep 17 00:00:00 2001 From: Moritz Strohm <strohm@data-quest.de> Date: Thu, 29 Feb 2024 13:39:44 +0000 Subject: [PATCH] file/edit_folder: do not test the availability of folder types for RootFolder instances, fixes #3766 Closes #3766 Merge request studip/studip!2641 --- app/controllers/file.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/app/controllers/file.php b/app/controllers/file.php index cd60699c2ec..83152e3cf8b 100644 --- a/app/controllers/file.php +++ b/app/controllers/file.php @@ -1973,11 +1973,6 @@ class FileController extends AuthenticatedController if (!$folder || !$folder->isEditable($GLOBALS['user']->id)) { throw new AccessDeniedException(); } - $parent_folder = $folder->getParent(); - $folder_types = FileManager::getAvailableFolderTypes( - $parent_folder ? $parent_folder->range_id : null, - $GLOBALS['user']->id - ); $this->name = Request::get('name', $folder->name); $this->description = Request::get('description', $folder->description); @@ -1986,13 +1981,16 @@ class FileController extends AuthenticatedController $this->folder_types = []; - if (!is_a($folder, 'VirtualFolderType') && $parent_folder) { + if (!is_a($folder, 'VirtualFolderType') && !is_a($folder, 'RootFolder')) { + $folder_types = FileManager::getAvailableFolderTypes( + $folder->range_id, + $GLOBALS['user']->id + ); foreach ($folder_types as $folder_type) { $folder_type_instance = new $folder_type( [ - 'range_id' => $parent_folder->range_id, - 'range_type' => $parent_folder->range_type, - 'parent_id' => $parent_folder->getId() + 'range_id' => $folder->range_id, + 'range_type' => $folder->range_type ] ); $this->folder_types[] = [ @@ -2002,7 +2000,8 @@ class FileController extends AuthenticatedController 'icon' => $folder_type_instance->getIcon('clickable') ]; } - } elseif (!$parent_folder) { + } else { + //It is a virtual folder or a root folder (folder without parent): $this->folder_types[] = [ 'class' => get_class($folder), 'instance' => $folder, -- GitLab