feat(nextcloud-files): Modul Dateien mit Nextcloud-Adresse, Verbindungsprüfung und gesicherter Verbindungsschicht

- Migration 20261008180000: NextcloudFilesConfig (Organisation) und NextcloudFilesAccount
  (Mandant UND Benutzer per Zeilenschutz, nur verschlüsseltes App-Passwort)
- Transportschicht ncRequest: feste Pfadanfänge, Segmentcodierung, keine Weiterleitungen,
  keine Cookies, Zeitgrenzen; Aufrufsperre pausiert den Ursprung nach jedem 429 und
  sperrt Zugangsschlüssel nach dem ersten 401
- Einstellungen: Adresse speichern/prüfen, Adresswechsel läuft alle Konten ab (mit Bestätigung)
- Controller mit Verwalten nur auf Einstellungen, Seed, Modul, Registrierung in Web
  (Ladefunktion, Symbol folder, Navigation, Layout) und Reiter Einstellungen
- RLS-Inventar fortgeschrieben, Testaufbau (tessera-nc-test) und E2E-Skripte

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-08 17:41:46 +02:00
parent 83b842b72c
commit 960696745f
35 changed files with 3282 additions and 2 deletions
+48
View File
@@ -2320,5 +2320,53 @@
"request": "The request failed. Please try again.",
"loadStatus": "The state of the AutoDNS connection could not be loaded."
}
},
"nextcloudFiles": {
"title": "Files",
"description": "View, upload, download and organise the files in your Nextcloud.",
"tabs": {
"files": "Files",
"settings": "Settings"
},
"notConfigured": {
"title": "Nextcloud has not been set up yet.",
"managerHint": "Enter the address of your Nextcloud in the settings.",
"userHint": "Please contact an administrator or someone with the Manage permission level.",
"goToSettings": "Go to settings"
},
"main": {
"server": "Nextcloud: {host}"
},
"errors": {
"request": "The request failed. Please try again.",
"loadStatus": "The state of the Nextcloud connection could not be loaded."
},
"settings": {
"save": "Save",
"saving": "Saving …",
"saved": "Saved.",
"address": {
"title": "Nextcloud address",
"description": "Enter the address the way your users open Nextcloud in the browser, for example https://cloud.your-company.com. Internal addresses are allowed.",
"label": "Address",
"placeholder": "https://cloud.your-company.com",
"test": "Check connection",
"testing": "Checking …",
"connectedUsers": "{count, plural, =0 {Nobody is connected right now.} one {One user is connected.} other {# users are connected.}}"
},
"reconnect": {
"message": "{count, plural, one {One user is connected. After the change they have to sign in again.} other {# users are connected. After the change everyone has to sign in again.}}",
"confirm": "Change address",
"cancel": "Cancel"
},
"hints": {
"title": "Notes for the Nextcloud administration",
"description": "So that signing in works reliably for everyone.",
"whitelist": "All Tessera users reach Nextcloud from the same address, that of the Tessera server. Several failed sign-ins make Nextcloud block this address for everyone. Add the address of the Tessera server to the allow list of the brute-force protection:",
"https": "Use https where possible. Certificates are verified; a private certificate authority has to be installed on the Tessera server.",
"trustedDomains": "The host name of the address has to be listed in the trusted domains (trusted_domains) of Nextcloud.",
"twoFactor": "Users with two-factor authentication connect through the browser; signing in with a password is not enough for them."
}
}
}
}