From 67a1781ffc30d98a9c5514da246f8e5552dbe0c0 Mon Sep 17 00:00:00 2001 From: Elmar Ludwig Date: Thu, 16 Oct 2025 11:49:38 +0200 Subject: remove broken reimplementation of findTopFolder(), fixes #5944 Closes #5944 Merge request studip/studip!4545 --- .../Courseware/StructuralElementsImageUpload.php | 4 ++-- lib/models/Courseware/Filesystem/PublicFolder.php | 25 ---------------------- lib/models/Courseware/StructuralElement.php | 5 +++-- 3 files changed, 5 insertions(+), 29 deletions(-) diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsImageUpload.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsImageUpload.php index aaca497..860252b 100644 --- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsImageUpload.php +++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsImageUpload.php @@ -29,9 +29,9 @@ class StructuralElementsImageUpload extends NonJsonApiController } $instance = $this->findInstanceWithRange($structuralElement['range_type'], $structuralElement['range_id']); - $publicFolder = PublicFolder::findOrCreateTopFolder($instance); + $publicFolder = \Folder::findTopFolder($instance->getRoot()->id, PublicFolder::class, 'courseware'); - $fileRef = $this->handleUpload($request, $publicFolder, $structuralElement); + $fileRef = $this->handleUpload($request, $publicFolder->getTypedFolder(), $structuralElement); // remove existing image if (is_a($structuralElement->image, \FileRef::class)) { diff --git a/lib/models/Courseware/Filesystem/PublicFolder.php b/lib/models/Courseware/Filesystem/PublicFolder.php index 271c929..0c1fa3e 100644 --- a/lib/models/Courseware/Filesystem/PublicFolder.php +++ b/lib/models/Courseware/Filesystem/PublicFolder.php @@ -2,8 +2,6 @@ namespace Courseware\Filesystem; -use Courseware\Instance; -use FileType; use Folder; use FolderType; use Icon; @@ -11,29 +9,6 @@ use StandardFolder; class PublicFolder extends StandardFolder { - public static function findOrCreateTopFolder(Instance $instance): PublicFolder - { - if (!($folder = self::findTopFolder($instance))) { - $folder = self::createTopFolder($instance); - } - - return $folder; - } - - public static function findTopFolder(Instance $instance): ?PublicFolder - { - if ($folder = Folder::findOneByrange_id($instance->getRoot()->id)) { - return new PublicFolder($folder); - } - - return null; - } - - public static function createTopFolder(Instance $instance): PublicFolder - { - return new PublicFolder(Folder::createTopFolder($instance->getRoot()->id, 'courseware', PublicFolder::class)); - } - protected $folder; /** diff --git a/lib/models/Courseware/StructuralElement.php b/lib/models/Courseware/StructuralElement.php index d5cf5b5..e469454 100644 --- a/lib/models/Courseware/StructuralElement.php +++ b/lib/models/Courseware/StructuralElement.php @@ -2,6 +2,7 @@ namespace Courseware; +use Courseware\Filesystem\PublicFolder; use JSONArrayObject; use User; @@ -978,9 +979,9 @@ SQL; $original_file_ref = \FileRef::find($this->image_id); if ($original_file_ref) { $instance = new Instance($this->getCourseware($parent->range_id, $parent->range_type)); - $folder = \Courseware\Filesystem\PublicFolder::findOrCreateTopFolder($instance); + $folder = \Folder::findTopFolder($instance->getRoot()->id, PublicFolder::class, 'courseware'); /** @var \FileRef $file_ref */ - $file_ref = \FileManager::copyFile($original_file_ref->getFileType(), $folder, $user); + $file_ref = \FileManager::copyFile($original_file_ref->getFileType(), $folder->getTypedFolder(), $user); $file_ref_id = $file_ref->id; } -- cgit v1.0