Dokumente löschen und wiederherstellen – Systembeschreibung
Statusbasiertes Löschen und Wiederherstellen, endgültiges Löschen mit Freigabebestätigung und Speicherbereinigung, die Rechteschlüssel und die Bereichslücke.
Ein Dokument lässt sich per Status (status = 9, Datensatz und Datei bleiben) oder endgültig (Datensatz, Ablageorte, physische Datei und Cache) löschen. Beide verweigern das Löschen objektverknüpfter Dokumente.
Datenmodell
Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.
| Tabelle | Rolle |
|---|---|
doc | Status (1 = aktiv, 9 = Papierkorb) |
doc_link | sperrender Verweis |
doc_share_item | Freigabemitgliedschaft (Bestätigung, Lösen) |
doc_location | weitere Ablageorte |
Ablauf
statusdelete: verweigert objektverknüpfte Dokumente (error_referenced), sonststatus = 9.statusrestore: 9 → 1, nur für Benutzer, die den Papierkorb sehen (canSeeDeleted(document)).delete: verweigert bei Objektverknüpfung; bei einem Dokument in einem Freigabeordner listet es zuerst die Ordner und verlangt Bestätigung (need_force), mitforce=1wird gelöst; verwaiste Freigabezeilen werden still bereinigt.- Danach
purgeStoredDoc(): Drive-Datei (in den Papierkorb oder endgültig –removeFile), Verknüpfungen weiterer Ablageorte, OneDrive- oder lokale Datei; Ablagezeilen, Datensatz und gesamter Cache (purgeDoc). Ein Fehler beim physischen Löschen stoppt das Löschen des Datensatzes nicht (protokolliert).
Berechtigungen
- Die Oberfläche zeigt einen roten Papierkorb (
i-del) mit dem Rechtstatusdelete; wer zusätzlichdeletehat, erhält einen eigenen Punkt „Endgültig löschen“. statusdelete: BASE; Einzel- und mengenabhängiges Sammelrecht;docIdInScopeje Dokument.delete: in den Seeds nicht klassifiziert.
Bekannte Einschränkungen
Das endgültige Löschen (delete()) prüft den Inhaltsbereich nicht.