„Alle Beiträge und Themen löschen“ in Berechtigungen für eigene Inhalte und globale Inhalte aufteilen

Ich vermute, ein Teil der Verwirrung hier liegt darin, dass es möglicherweise eine Unterscheidung zwischen verschiedenen „gelöschten Inhalt anzeigen“-Prüfungen gibt.

Bei PostGuardian scheint ein einzelner gelöschter Beitrag nicht allein dadurch sichtbar zu werden, dass der Benutzer in delete_all_posts_and_topics_allowed_groups ist, wenn man can_see_post? aufruft.

Beispielsweise läuft die Sichtbarkeit einzelner gelöschter Beiträge über:

def can_see_deleted_post?(post)
  return false if !post.trashed?
  return false if @user.anonymous?
  return true if is_staff?
  post.deleted_by_id == @user.id && @user.has_trust_level?(TrustLevel[4])
end

Das heißt, ein Nicht-Mitarbeiter mit Vertrauensstufe 2 (TL2), der in delete_all_posts_and_topics_allowed_groups ist, könnte nicht notwendigerweise jeden gelöschten Beitragstext über can_see_post? öffnen oder lesen.

Allerdings wird dieselbe Einstellung auch hier verwendet:

def can_see_deleted_posts?(category = nil)
  is_category_group_moderator?(category) ||
    @user.in_any_groups?(SiteSetting.delete_all_posts_and_topics_allowed_groups_map)
end

Das bedeutet, die Einstellung ist konzeptionell immer noch breiter gefasst als nur „Autoren können ihren eigenen Inhalt zurückziehen“. Sie scheint sowohl zum Löschen sichtbarer Beiträge anderer Benutzer als auch für zumindest einige Sichtbarkeits- oder Auflistungsfunktionen für gelöschte Beiträge verwendet zu werden.

Meine Sorge ist also weniger „diese Einstellung gibt auf jeden Fall in jedem Endpunkt jeden gelöschten Beitragstext preis“, sondern eher, dass die aktuelle Berechtigung mehrere Konzepte kombiniert:

  1. Löschen von Beiträgen/Themen anderer Benutzer;
  2. Anzeigen oder Auflisten gelöschter Beiträge/Themen in bestimmten Kontexten;
  3. Autoren mehr Kontrolle über ihren eigenen digitalen Fußabdruck geben.

Für meinen Anwendungsfall möchte ich nur das dritte Konzept.

Deshalb halte ich eine eigene Einstellung für den eigenen Inhalt für sauberer. Sie könnte es einem Benutzer ermöglichen, seine eigenen Beiträge/Themen zu löschen oder zurückzuziehen – unter Einhaltung bestehender Schutzmaßnahmen –, ohne breitere moderatorenähnliche Berechtigungen über den Inhalt anderer Benutzer oder die Sichtbarkeit gelöschter Inhalte zu gewähren.