PdfDragButton komplett entfernt (Plattformgrenze)

Test-Ergebnis: Browser kann einer fremden Desktop-App keine echte
lokale Datei zum Anhaengen uebergeben. URL-Drag -> Thunderbird nur Link
(0 Bytes, Fehler beim Senden); Datei-Drop in den Text -> nur Dateiname
als Text; auf die Anhang-Leiste (Thunderbird/Linux) -> ebenfalls kein
echter Anhang; Webmail -> gar nicht moeglich.

Entscheidung: Feature raus. Download- und Anzeigen-Button decken den
Bedarf zuverlaessig ab. PdfDragButton geloescht, fileUrl()-Token-Param
zurueckgebaut. Pentest R131 damit gegenstandslos (kein Drag mehr).

Die separaten Copy-Buttons fuer IBAN + Ausweisnummer im Vertrags-
formular bleiben erhalten.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-30 14:51:52 +02:00
co-authored by Claude Opus 4.8
parent 3073acb4b0
commit 5bbb7dfffe
6 changed files with 18 additions and 247 deletions
+2 -8
View File
@@ -24,15 +24,9 @@ export function viewUrl(path: string | null | undefined): string {
return fileUrl(path, { inline: true });
}
export function fileUrl(
path: string | null | undefined,
opts?: { inline?: boolean; token?: string },
): string {
export function fileUrl(path: string | null | undefined, opts?: { inline?: boolean }): string {
if (!path) return '';
// Expliziter Token (z.B. kurzlebiger 60s-Download-Token) hat Vorrang vor
// dem langlebigen Access-Token. Genutzt vom PdfDragButton, damit bei einem
// Fehl-Drop kein 15-Min-Vollzugriffs-Token in fremde Kontexte leakt.
const token = opts?.token ?? getAccessToken();
const token = getAccessToken();
const normalizedPath = path.startsWith('/') ? path : '/' + path;
// `?disposition=inline` schaltet die Anzeige im Browser-Tab ein,
// der Backend-Controller bleibt aber nur dann inline, wenn die