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.

TabelleRolle
docStatus (1 = aktiv, 9 = Papierkorb)
doc_linksperrender Verweis
doc_share_itemFreigabemitgliedschaft (Bestätigung, Lösen)
doc_locationweitere Ablageorte

Ablauf

  1. statusdelete: verweigert objektverknüpfte Dokumente (error_referenced), sonst status = 9.
  2. statusrestore: 9 → 1, nur für Benutzer, die den Papierkorb sehen (canSeeDeleted(document)).
  3. delete: verweigert bei Objektverknüpfung; bei einem Dokument in einem Freigabeordner listet es zuerst die Ordner und verlangt Bestätigung (need_force), mit force=1 wird gelöst; verwaiste Freigabezeilen werden still bereinigt.
  4. 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 Recht statusdelete; wer zusätzlich delete hat, erhält einen eigenen Punkt „Endgültig löschen“.
  • statusdelete: BASE; Einzel- und mengenabhängiges Sammelrecht; docIdInScope je Dokument.
  • delete: in den Seeds nicht klassifiziert.

Bekannte Einschränkungen

Das endgültige Löschen (delete()) prüft den Inhaltsbereich nicht.