Eingebetteter Medienbeitrag erlaubte Gruppen kollidieren mit Beitragsmoderations-Workflow: Unhide! schlägt mit ActiveRecord::RecordInvalid fehl

Es gibt einen Konflikt zwischen „Erlaubte Gruppen für Beiträge mit eingebetteten Medien“ und dem Workflow zum Aufheben der Verbergung von Beiträgen.

Wenn ein Beitrag von einem Benutzer erstellt wird, der nicht in den erlaubten Mediengruppen ist, und später verborgen wird (über Flags), schlägt der Versuch, den Beitrag aufzuheben, fehl, wenn ein Moderator den verborgenen Beitrag bearbeitet und Medien hinzufügt, mit folgender Meldung:

ActiveRecord::RecordInvalid
Validation failed: Sorry, you can't embed media items in a post.

Der Prozess zum Aufheben der Verbergung führt die Medienvalidierung erneut durch, wobei die Berechtigungen des ursprünglichen Autors und nicht die des Moderators verwendet werden, was dazu führt, dass das Aufheben fehlschlägt.


Schritte zur Reproduktion

  1. Konfigurieren Sie Erlaubte Gruppen für Beiträge mit eingebetteten Medien und schließen Sie Benutzer mit geringem Vertrauen aus.
  2. Verwenden Sie einen Benutzer, der nicht in den erlaubten Gruppen enthalten ist, um einen Beitrag zu erstellen.
  3. Lassen Sie den Beitrag durch System-Flags verbergen (Ich bin mir hier nicht ganz sicher – es scheint, dass Beiträge nur über Flags verborgen werden können, nicht manuell vom Personal? Personal kann Themen, aber keine einzelnen Beiträge verbergen. Bitte korrigieren Sie mich, wenn ich falsch liege.)
  4. Ein Moderator bearbeitet den verborgenen Beitrag und fügt Medien (Bilder/Videos) ein.
  5. Versuchen Sie, die Verbergung des Beitrags aufzuheben (entweder in der Benutzeroberfläche oder über post.unhide! in der Rails-Konsole).
  6. Der Vorgang schlägt mit folgender Meldung fehl:

ActiveRecord::RecordInvalid Validation failed: Sorry, you can't embed media items in a post.