From 89eb081bd6cef029ddc8235718fb7edb6315e317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Fri, 20 Dec 2024 17:33:05 +0100 Subject: [PATCH] fix: ensure url-sage filenames for downloads --- .../Teamer/Disposition/ContractPdfController.php | 13 ++++++++++--- .../Teamer/Disposition/InvoicePdfController.php | 13 ++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/Controller/Teamer/Disposition/ContractPdfController.php b/src/Controller/Teamer/Disposition/ContractPdfController.php index 3c3d8bb..2a42855 100644 --- a/src/Controller/Teamer/Disposition/ContractPdfController.php +++ b/src/Controller/Teamer/Disposition/ContractPdfController.php @@ -10,6 +10,7 @@ use Symfony\Component\HttpFoundation\HeaderUtils; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Security\Http\Attribute\IsGranted; +use Symfony\Component\String\Slugger\AsciiSlugger; class ContractPdfController extends AbstractController { @@ -26,12 +27,18 @@ class ContractPdfController extends AbstractController { $pdf = $this->renderer->render($disposition); - $teamer = $disposition->getTeamer(); + $slugger = new AsciiSlugger('de'); + + $teamer = $slugger->slug($disposition->getTeamer()); $assignment = $disposition->getAssignment(); - $destination = $assignment->getDestination(); + $destination = $slugger->slug($assignment->getDestination()); $filename = sprintf('Honorarvertrag_%s_%s.pdf', $teamer, $destination); - $disposition = HeaderUtils::makeDisposition(HeaderUtils::DISPOSITION_ATTACHMENT, $filename, md5($filename)); + $disposition = HeaderUtils::makeDisposition( + HeaderUtils::DISPOSITION_ATTACHMENT, + $filename, + md5($filename) + ); $response = new Response($pdf->Output('S')); $response->setPrivate(); diff --git a/src/Controller/Teamer/Disposition/InvoicePdfController.php b/src/Controller/Teamer/Disposition/InvoicePdfController.php index ef6ff0f..d78d36f 100644 --- a/src/Controller/Teamer/Disposition/InvoicePdfController.php +++ b/src/Controller/Teamer/Disposition/InvoicePdfController.php @@ -10,6 +10,7 @@ use Symfony\Component\HttpFoundation\HeaderUtils; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Security\Http\Attribute\IsGranted; +use Symfony\Component\String\Slugger\AsciiSlugger; class InvoicePdfController extends AbstractController { @@ -26,12 +27,18 @@ class InvoicePdfController extends AbstractController { $pdf = $this->renderer->render($disposition); + $slugger = new AsciiSlugger('de'); + + $teamer = $slugger->slug($disposition->getTeamer()); $assignment = $disposition->getAssignment(); - $destination = $assignment->getDestination(); - $teamer = $disposition->getTeamer(); + $destination = $slugger->slug($assignment->getDestination()); $filename = sprintf('Honorarnote_%s_%s.pdf', $teamer, $disposition->getAssignment()->getDestination()); - $contentDisposition = HeaderUtils::makeDisposition(HeaderUtils::DISPOSITION_ATTACHMENT, $filename, md5($filename)); + $contentDisposition = HeaderUtils::makeDisposition( + HeaderUtils::DISPOSITION_ATTACHMENT, + $filename, + md5($filename) + ); $response = new Response($pdf->Output('S')); $response->setPrivate();