Optional Domain mit Port und ohne für Sharelinks

This commit is contained in:
2026-09-05 23:59:21 +02:00
parent 3ae0ab0a88
commit 172dd95387
7 changed files with 100 additions and 17 deletions

View File

@@ -10,9 +10,23 @@
const VORGABEN = {
baseUrl: "",
token: "",
// Adresse, unter der das Archiv von aussen erreichbar ist.
//
// Wird nur für Freigabelinks verwendet. Paperless liefert in der
// Antwort lediglich den Slug; die vollständige Adresse setzt die
// Erweiterung zusammen. Führt der interne Zugang über einen
// abweichenden Port oder einen anderen Namen, wäre ein daraus gebauter
// Link für den Empfänger wertlos.
//
// Leer = baseUrl verwenden.
shareBaseUrl: "",
versionLabel: "Thunderbird {datum}",
shareDays: 7,
shareTag: "Sharelink",
// Beschriftung der eingefügten Linkblöcke. Leer lassen für keine
// Nummerierung ist nicht vorgesehen - eine Nummer hilft beim Bezugnehmen
// im Fließtext ("siehe Datei 2").
linkBezeichner: "",
// Anhänge, die üblicherweise keine Dokumente sind. Sie werden im
// Auswahldialog vorab abgewählt, lassen sich aber anhaken.
ignorierteTypen: ["image/gif", "image/png", "image/jpeg", "text/vcard",
@@ -34,6 +48,21 @@ export function vollstaendig(s) {
return Boolean(s?.baseUrl) && Boolean(s?.token);
}
/**
* Zugriffsmuster für browser.permissions aus einer Basisadresse.
*
* WICHTIG: Muster dürfen KEINEN Port enthalten. "https://rechner:8443/*"
* ist ungültig, und permissions.request wirft dann eine Ausnahme mit
* einer Meldung, die nichts über die Ursache verrät.
*
* Ein Zugriffsrecht gilt ohnehin für alle Ports desselben Rechners - die
* Einschränkung kostet also nichts.
*/
export function zugriffsmuster(baseUrl) {
const u = new URL(String(baseUrl).trim());
return `${u.protocol}//${u.hostname}/*`;
}
/**
* Beliebige Zeichenkette in einen unbedenklichen Dateinamen überführen.
*