feat(quick-261009-dkv): Oeffentliche Links nach den Regeln der Nextcloud, Uebersichten und Annehmen, Schnittstelle

- Links anlegen und aendern: Passwort, Ablaufdatum und Bezeichnung nur im JSON-Koerper,
  Vorpruefung aus den frisch gelesenen Faehigkeiten (Passwort/Ablauf verlangt, Hochladen,
  mehrere Links), echte Datumspruefung, nur geaenderte Felder beim Aendern
- Routen shares/mine, shares/received (angenommen plus offen, 404/405 bei offen = leer)
  und POST shares/:id/accept am Ende der Klasse
- Fehlerzweige fuer Passwort und Ablauf mit Tests; nie Passwort in Antwort oder Fehler
- Live-Test e2e-shares.sh: Abschnitte links (Pflicht-Passwort und Pflicht-Ablauf per occ)
  und received (eingehend, offen, annehmen, verlassen)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-10-09 11:19:31 +02:00
parent bf893afc61
commit fe429dbe01
9 changed files with 1034 additions and 43 deletions
@@ -254,7 +254,7 @@ function lastSegment(path: string): string {
return parts.length > 0 ? parts[parts.length - 1] : '';
}
function isRealDate(value: string): boolean {
export function isRealDate(value: string): boolean {
if (!DATE_RE.test(value)) return false;
const d = new Date(`${value}T00:00:00Z`);
return !Number.isNaN(d.getTime()) && d.toISOString().slice(0, 10) === value;