diff options
| author | Moritz Strohm <strohm@data-quest.de> | 2024-02-29 13:39:44 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2024-02-29 13:39:44 +0000 |
| commit | 07ed05bdc8cd23adda42cd2d79af4eb4e6bf62fa (patch) | |
| tree | e2eacb2805df015bfbfc244d37403d1aeb8c6efd | |
| parent | a82d268124ca51ae601514a4e8a9634a1c1d75de (diff) | |
file/edit_folder: do not test the availability of folder types for RootFolder instances, fixes #3766
Closes #3766
Merge request studip/studip!2641
| -rw-r--r-- | app/controllers/file.php | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/app/controllers/file.php b/app/controllers/file.php index cd60699..83152e3 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, |
