aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElmar Ludwig <elmar.ludwig@uni-osnabrueck.de>2025-10-16 11:49:38 +0200
committerDavid Siegfried <david.siegfried@uni-vechta.de>2025-10-16 09:49:38 +0000
commit67a1781ffc30d98a9c5514da246f8e5552dbe0c0 (patch)
tree7e5ef95ac2fe5d93a391a9f14cb673c40d4acdf9
parent6a3a77d11d605d57c6bdefbad4e96d474c74f458 (diff)
remove broken reimplementation of findTopFolder(), fixes #5944
Closes #5944 Merge request studip/studip!4545
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/StructuralElementsImageUpload.php4
-rw-r--r--lib/models/Courseware/Filesystem/PublicFolder.php25
-rw-r--r--lib/models/Courseware/StructuralElement.php5
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;
}