minmal-file-cloud-email-pim.../backend/app/api
Stefan Hacker 748537b9f5 feat: File Locking System (Ein-/Auschecken) + Konflikt-Email
Backend - FileLock Model + API:
- POST /files/<id>/lock - Datei auschecken (sperren)
- POST /files/<id>/unlock - Datei einchecken (entsperren)
- POST /files/<id>/heartbeat - "Datei noch offen" (alle 60s)
- GET /files/<id>/lock-status - Sperrstatus abfragen
- GET /files/locks - Alle aktiven Sperren auflisten
- Auto-Unlock: Kein Heartbeat seit 5 Min -> Sperre wird freigegeben
- 423 Locked wenn bereits von anderem User gesperrt
- Admin kann fremde Sperren aufheben

Dateiliste + Sync-API:
- Lock-Info (locked, locked_by, locked_at) pro Datei mitgeliefert
- Sync-Tree enthaelt Lock-Status fuer Desktop/Mobile-Clients

Web-UI:
- Schloss-Icon mit Benutzername bei gesperrten Dateien
- Tooltip: "Ausgecheckt von Adam seit 14:30"
- Gesperrte Dateien: "Oeffnen nicht moeglich" Toast-Meldung
  (eigene Sperren sind erlaubt)

Konflikt-Email an Admin:
- Wer hat die Konflikt-Kopie erstellt (Name + Email)
- Welche Datei (Name + Ordnerpfad)
- Name der Konflikt-Kopie
- Von wem gesperrt (Name + Email + seit wann)
- Erklaerungstext was passiert ist

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 23:20:55 +02:00
..
__init__.py feat: Backup & Restore mit Chunked Upload fuer grosse Dateien 2026-04-11 17:55:39 +02:00
auth.py fix: Download Token-Fehler - Token als Query-Parameter unterstuetzen 2026-04-11 20:39:58 +02:00
backup.py feat: Einzeldatei-Restore aus Backups (lokal + SFTP) 2026-04-11 18:13:16 +02:00
calendar.py feat: System-Email-Benachrichtigungen bei Freigaben und Benutzer-Erstellung 2026-04-11 18:31:19 +02:00
contacts.py feat: System-Email-Benachrichtigungen bei Freigaben und Benutzer-Erstellung 2026-04-11 18:31:19 +02:00
email.py feat: Admin kann Email-Konten pro Benutzer verwalten + Benutzersuche 2026-04-11 17:35:51 +02:00
files.py feat: File Locking System (Ein-/Auschecken) + Konflikt-Email 2026-04-11 23:20:55 +02:00
office.py feat: OnlyOffice Force-Save bei Ctrl+S + private IP erlauben 2026-04-11 22:54:31 +02:00
passwords.py feat: System-Email-Benachrichtigungen bei Freigaben und Benutzer-Erstellung 2026-04-11 18:31:19 +02:00
users.py simplify: OnlyOffice nutzt JWT_SECRET_KEY, kein extra Secret 2026-04-11 22:10:06 +02:00