Skip to content
Snippets Groups Projects
Commit 07ed05bd authored by Moritz Strohm's avatar Moritz Strohm Committed by Jan-Hendrik Willms
Browse files

file/edit_folder: do not test the availability of folder types for RootFolder...

file/edit_folder: do not test the availability of folder types for RootFolder instances, fixes #3766

Closes #3766

Merge request studip/studip!2641
parent a82d2681
No related branches found
No related tags found
No related merge requests found
...@@ -1973,11 +1973,6 @@ class FileController extends AuthenticatedController ...@@ -1973,11 +1973,6 @@ class FileController extends AuthenticatedController
if (!$folder || !$folder->isEditable($GLOBALS['user']->id)) { if (!$folder || !$folder->isEditable($GLOBALS['user']->id)) {
throw new AccessDeniedException(); 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->name = Request::get('name', $folder->name);
$this->description = Request::get('description', $folder->description); $this->description = Request::get('description', $folder->description);
...@@ -1986,13 +1981,16 @@ class FileController extends AuthenticatedController ...@@ -1986,13 +1981,16 @@ class FileController extends AuthenticatedController
$this->folder_types = []; $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) { foreach ($folder_types as $folder_type) {
$folder_type_instance = new $folder_type( $folder_type_instance = new $folder_type(
[ [
'range_id' => $parent_folder->range_id, 'range_id' => $folder->range_id,
'range_type' => $parent_folder->range_type, 'range_type' => $folder->range_type
'parent_id' => $parent_folder->getId()
] ]
); );
$this->folder_types[] = [ $this->folder_types[] = [
...@@ -2002,7 +2000,8 @@ class FileController extends AuthenticatedController ...@@ -2002,7 +2000,8 @@ class FileController extends AuthenticatedController
'icon' => $folder_type_instance->getIcon('clickable') '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[] = [ $this->folder_types[] = [
'class' => get_class($folder), 'class' => get_class($folder),
'instance' => $folder, 'instance' => $folder,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment