aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorMoritz Strohm <strohm@data-quest.de>2024-02-29 13:39:44 +0000
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2024-02-29 13:39:44 +0000
commit07ed05bdc8cd23adda42cd2d79af4eb4e6bf62fa (patch)
treee2eacb2805df015bfbfc244d37403d1aeb8c6efd /app
parenta82d268124ca51ae601514a4e8a9634a1c1d75de (diff)
file/edit_folder: do not test the availability of folder types for RootFolder instances, fixes #3766
Closes #3766 Merge request studip/studip!2641
Diffstat (limited to 'app')
-rw-r--r--app/controllers/file.php19
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,