feat: controller securise pour servir les PDFs de devis + stockage prive

src/Controller/DevisPdfController.php (nouveau):
- Route /devis/pdf/{id}/{type} avec type = unsigned|signed|audit
- Requiert ROLE_USER minimum
- checkAccess(): les ROLE_EMPLOYE ont toujours acces,
  pour les clients un TODO est prepare pour verifier que le
  client connecte est bien lie au devis (a implementer quand
  la relation Customer sera ajoutee sur Devis)
- Sert le fichier via BinaryFileResponse en inline (affichage
  dans le navigateur) avec nom de telechargement propre
  (ex: signed-04-2026-00001.pdf)

config/packages/vich_uploader.yaml:
- Mapping devis_pdf: stockage deplace de public/uploads/devis
  vers var/uploads/devis (hors du dossier public, inaccessible
  directement par URL)
- uri_prefix change en /devis/pdf (pointe vers le controller)

config/packages/security.yaml:
- Suppression de la regle access_control sur /uploads/devis
  (remplacee par le controller avec verification plus fine)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-04-02 22:34:54 +02:00
parent 09148b5b33
commit 88053611a4
3 changed files with 75 additions and 3 deletions

View File

@@ -7,6 +7,6 @@ vich_uploader:
upload_destination: '%kernel.project_dir%/public/uploads/avatars'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
devis_pdf:
uri_prefix: /uploads/devis
upload_destination: '%kernel.project_dir%/public/uploads/devis'
uri_prefix: /devis/pdf
upload_destination: '%kernel.project_dir%/var/uploads/devis'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer