From 2ed3db16c437face7935f151d3859de3254eba3d Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Fri, 25 Oct 2024 06:15:21 +0000 Subject: [PATCH] exportpdf no longer breaks when an embedded stud.ip file does not exist, fixes #4765 Closes #4765 Merge request studip/studip!3552 --- lib/classes/exportdocument/ExportPDF.php | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/lib/classes/exportdocument/ExportPDF.php b/lib/classes/exportdocument/ExportPDF.php index f676c4516c8..1b2ec7798b9 100644 --- a/lib/classes/exportdocument/ExportPDF.php +++ b/lib/classes/exportdocument/ExportPDF.php @@ -319,21 +319,19 @@ class ExportPDF extends TCPDF implements ExportDocument } catch (Exception $e) { $convurl = ''; } - } else if (mb_stripos($url, 'dispatch.php/document/download') !== false) { - if (preg_match('#([a-f0-9]{32})#', $url, $matches)) { - $file_ref = FileRef::find($matches[1]); - $folder = $file_ref->folder->getTypedFolder(); - if($folder->isFileDownloadable($file_ref->id, $GLOBALS['user']->id)) { - $convurl = $file_ref->file->getPath(); - } - } - } else if (mb_stripos($url, 'download') !== false - || mb_stripos($url, 'sendfile.php') !== false) { + } elseif ( + mb_stripos($url, 'dispatch.php/document/download') !== false + || mb_stripos($url, 'download') !== false + || mb_stripos($url, 'sendfile.php') !== false + ) { //// get file id if (preg_match('#([a-f0-9]{32})#', $url, $matches)) { $file_ref = FileRef::find($matches[1]); - $folder = $file_ref->folder->getTypedFolder(); - if($folder->isFileDownloadable($file_ref->id, $GLOBALS['user']->id)) { + $folder = isset($file_ref->folder) ? $file_ref->folder->getTypedFolder() : null; + if ( + isset($folder) + && $folder->isFileDownloadable($file_ref->id, $GLOBALS['user']->id) + ) { $convurl = $file_ref->file->getPath(); } else { $convurl = Assets::image_path('messagebox/exception.png'); -- GitLab