Die Prüfung „Medien überprüfen“ (Site-Einstellung skip_review_media_groups) wird nur bei der Erstellung eines Beitrags in NewPostManager durchgesetzt. Bearbeitungsvorgänge laufen über PostRevisor, der die Medienprüfung niemals ausführt. Ein Benutzer kann daher zunächst einen reinen Textbeitrag erstellen (der die Prüfung besteht) und anschließend Bilder über eine Bearbeitung hinzufügen – der Beitrag gelangt niemals in die Warteschlange zur Überprüfung.
Noch schlimmer: Wenn die Bearbeitung innerhalb der editing_grace_period (Standard: 5 Minuten) erfolgt und der Unterschied kleiner ist als editing_grace_period_max_diff (Standard: 100 Zeichen – eine einzelne Markdown-Zeile für ein hochgeladenes Bild beträgt ca. 40–60 Zeichen), wird keine Revision und kein Bleistift-Symbol erstellt, sodass die Umgehung in der Benutzeroberfläche vollständig unsichtbar bleibt.
Schritte zur Reproduktion
Konfigurieren Sie skip_review_media_groups so, dass normale Benutzer (z. B. TL0/TL1) nicht befreit sind – Beiträge mit Medien sollten einer Genehmigung bedürfen.
Erstellen Sie als normaler Benutzer einen Beitrag, der nur Text enthält. Dieser wird normal genehmigt/veröffentlicht (keine Medien → keine Überprüfung).
Bearbeiten Sie den Beitrag innerhalb der Gnadenfrist und fügen Sie ein hochgeladenes Bild ein.
Erwartetes Verhalten
Der Beitrag (der nun Medien enthält) sollte in die Warteschlange zur Überprüfung eingereiht werden, oder zumindest sollte die Bearbeitung der gleichen Medienprüfung unterliegen wie die Beitrags-Erstellung.
Tatsächliches Verhalten
Der Beitrag wird mit dem Bild veröffentlicht und gelangt niemals in die Warteschlange zur Überprüfung.
Es wird kein Revisionsdatensatz erstellt, es wird kein Bearbeitungshinweis angezeigt.
Reiner Textbeitrag erstellt um 07:33:28, Bild durch eine Bearbeitung ca. 32 Sekunden später hinzugefügt – keine sichtbare Bearbeitungsverlauf, keine Überprüfung.
Relevanter Code
lib/new_post_manager.rb — post_needs_approval? gibt :contains_media zurück über contains_embedded_media?, dies wird jedoch nur für neue Beiträge ausgeführt.
app/models/post_analyzer.rb#embedded_media_count — die Logik zur Medienzählung.
PostRevisor — keine äquivalente Medienprüfung bei der Bearbeitung.
Vorgeschlagene Lösung
Führen Sie die contains_media-Prüfung auch in PostRevisor aus (wenn die Bearbeitung Medien hinzufügt und der Bearbeiter nicht in skip_review_media_groups / kein Mitarbeiter ist), und reihen Sie einen ReviewablePost für den bearbeiteten Beitrag ein.
Ich habe versucht, diesen PR zu deployen, und dabei eine Asymmetrie in den Medienmoderationsmechanismen zwischen neuen Beiträgen und Bearbeitungen festgestellt. Ich möchte dieses Problem ansprechen:
Neue Beiträge mit Medien — ReviewableQueuedPost (Prüfung vor Veröffentlichung)
Der Beitrag wird überhaupt nicht erstellt; der Inhalt befindet sich in der prüfbaren Payload, bis er genehmigt wird.
Der Autor sieht den Abschnitt „wartet auf Genehmigung“ (pending_posts) auf der Themen-Seite.
Der Beitrag wird erst nach Genehmigung durch einen Moderator für alle sichtbar (perform_approve_post → PostCreator).
Bei Ablehnung wird der Inhalt verworfen — er war nie öffentlich.
Bearbeitungen, die Medien hinzufügen — ReviewablePost (zuerst veröffentlichen, danach prüfen)
Die Bearbeitung wirkt sofort; die neue Version (einschließlich des Bildes) ist sofort für alle sichtbar.
Es gibt keinen Hinweis „in Prüfung“ für den Autor — und bei Bearbeitungen innerhalb der Gnadenfrist gibt es nicht einmal eine Revision, sodass der ursprüngliche Inhalt in der UI keine Spur hinterlässt.
Bei Ablehnung wird der Beitrag gelöscht (perform_reject_and_delete), er ist jedoch über die vorherige Revision wiederherstellbar.
Die Sorge
Bei der aktuellen Herangehensweise wird das problematische Bild öffentlich sichtbar, bevor ein Moderator handeln kann, potenziell für eine lange Zeit, abhängig von der Prüfungszeit. Das scheint den gesamten Sinn von skip_review_media_groups zu schwächen — die Beschreibung der Einstellung besagt, dass Beiträge mit Medien „an das Personal zur Prüfung gesendet“ werden, was so klingt, als ob sie in der Zwischenzeit nicht öffentlich sein sollten.
Mögliche Verbesserung
Die bearbeiteten Inhalte in die Warteschlange stellen, anstatt sie anzuwenden. (Ich denke, das ist besser) Wenn eine Bearbeitung neue Medien einführt, bleibt der Beitrag unverändert, der Autor wird darüber informiert, dass die neue Bearbeitung auf Prüfung wartet, und die bearbeiteten Inhalte werden erst nach Genehmigung durch einen Moderator auf den Beitrag angewendet — bei Ablehnung werden sie verworfen. Dies spiegelt das Verhalten neuer Beiträge so genau wie möglich wider. (Implementierungstechnisch würde dies eine prüfbare Variante erfordern, deren Genehmigung eine revise-Operation auf dem bestehenden Beitrag ausführt, anstatt einen neuen zu erstellen.)
Den Beitrag verstecken, wenn eine Bearbeitung neue Medien einführt, sodass nur der Autor ihn mit einem Hinweis „wartet auf Genehmigung“ sieht, und bei Genehmigung die bestehende Aktion perform_approve_and_unhide verwenden — die Aktionen von ReviewablePost unterstützen dies bereits.
Danke, dass du das getestet hast. Ich bin einverstanden, das gesamte Bewertungssystem ist nicht richtig darauf ausgelegt, “Bewertungen/pendende Bearbeitungen” zu verarbeiten
Ich befürchte, das ist eine viel komplexere Aufgabe und wird mehr Zeit für die Planung und Umsetzung benötigen.