From 95e76ccaa65c37e0991975719d8ee92e34656b6a Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Mon, 8 Jul 2024 06:04:26 +0000 Subject: [PATCH] ensure mvv files are really only updated, fixes #4370 Closes #4370 Merge request studip/studip!3169 --- app/controllers/materialien/files.php | 47 ++++++++++++++------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/app/controllers/materialien/files.php b/app/controllers/materialien/files.php index f5857b6c88c..fc8b2aa8d94 100644 --- a/app/controllers/materialien/files.php +++ b/app/controllers/materialien/files.php @@ -392,35 +392,36 @@ class Materialien_FilesController extends MVVController $file->connectWithDataFile($_FILES['file']['tmp_name']); $file->store(); - $file = new StandardFile($ref); + $file = $ref->getFileType(); } else { $file = StandardFile::create($_FILES['file']); - } - $error = $top_folder->validateUpload($file, $user->id); - if ($error !== null) { - if (!$document_id) { - $file->delete(); + + $error = $top_folder->validateUpload($file, $user->id); + if ($error !== null) { + if (!$document_id) { + $file->delete(); + } + $this->response->set_status(400); + $this->render_json(compact('error')); + return; } - $this->response->set_status(400); - $this->render_json(compact('error')); - return; - } - $file = $top_folder->addFile($file); + $file = $top_folder->addFile($file); - if (!$file instanceof FileType) { - $error = _('Ein Systemfehler ist beim Upload aufgetreten.'); + if (!$file instanceof FileType) { + $error = _('Ein Systemfehler ist beim Upload aufgetreten.'); - $this->response->set_status(400); - $this->render_json(compact('error')); - return; - } + $this->response->set_status(400); + $this->render_json(compact('error')); + return; + } - $mvv_file_fileref = new MvvFileFileref([ - $output['mvvfile_id'], - Request::option('file_language'), - ]); - $mvv_file_fileref->fileref_id = $file->id; - $mvv_file_fileref->store(); + $mvv_file_fileref = new MvvFileFileref([ + $output['mvvfile_id'], + Request::option('file_language'), + ]); + $mvv_file_fileref->fileref_id = $file->id; + $mvv_file_fileref->store(); + } $output['document_id'] = $file->id; $output['icon'] = $file->getIcon(Icon::ROLE_CLICKABLE)->asImg(['class' => 'text-bottom']); -- GitLab