fix: ensure url-sage filenames for downloads

This commit is contained in:
Björn Fromme
2024-12-20 17:33:05 +01:00
parent e40da03e3a
commit 89eb081bd6
2 changed files with 20 additions and 6 deletions
@@ -10,6 +10,7 @@ use Symfony\Component\HttpFoundation\HeaderUtils;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted; use Symfony\Component\Security\Http\Attribute\IsGranted;
use Symfony\Component\String\Slugger\AsciiSlugger;
class ContractPdfController extends AbstractController class ContractPdfController extends AbstractController
{ {
@@ -26,12 +27,18 @@ class ContractPdfController extends AbstractController
{ {
$pdf = $this->renderer->render($disposition); $pdf = $this->renderer->render($disposition);
$teamer = $disposition->getTeamer(); $slugger = new AsciiSlugger('de');
$teamer = $slugger->slug($disposition->getTeamer());
$assignment = $disposition->getAssignment(); $assignment = $disposition->getAssignment();
$destination = $assignment->getDestination(); $destination = $slugger->slug($assignment->getDestination());
$filename = sprintf('Honorarvertrag_%s_%s.pdf', $teamer, $destination); $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 = new Response($pdf->Output('S'));
$response->setPrivate(); $response->setPrivate();
@@ -10,6 +10,7 @@ use Symfony\Component\HttpFoundation\HeaderUtils;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted; use Symfony\Component\Security\Http\Attribute\IsGranted;
use Symfony\Component\String\Slugger\AsciiSlugger;
class InvoicePdfController extends AbstractController class InvoicePdfController extends AbstractController
{ {
@@ -26,12 +27,18 @@ class InvoicePdfController extends AbstractController
{ {
$pdf = $this->renderer->render($disposition); $pdf = $this->renderer->render($disposition);
$slugger = new AsciiSlugger('de');
$teamer = $slugger->slug($disposition->getTeamer());
$assignment = $disposition->getAssignment(); $assignment = $disposition->getAssignment();
$destination = $assignment->getDestination(); $destination = $slugger->slug($assignment->getDestination());
$teamer = $disposition->getTeamer();
$filename = sprintf('Honorarnote_%s_%s.pdf', $teamer, $disposition->getAssignment()->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 = new Response($pdf->Output('S'));
$response->setPrivate(); $response->setPrivate();