Post con media incorporata permette conflitti di gruppo con il flusso di moderazione: non mostrare fallisce con ActiveRecord::RecordInvalid

C’è un conflitto tra “Gruppi autorizzati per i post con media incorporati” e il flusso di lavoro per mostrare nuovamente i post.

Se un post viene creato da un utente che non fa parte dei gruppi autorizzati per i media e successivamente viene nascosto (tramite segnalazioni), quando un moderatore modifica il post nascosto e aggiunge media, il tentativo di mostrare nuovamente il post fallirà con:

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

Il processo per mostrare nuovamente il post riesegue la convalida dei media utilizzando le autorizzazioni dell’autore originale, non quelle del moderatore, causando il fallimento del ripristino.


Passaggi per Riprodurre

  1. Configurare Gruppi autorizzati per i post con media incorporati, escludendo gli utenti con bassa fiducia.
  2. Utilizzare un utente non incluso nei gruppi autorizzati per creare un post.
  3. Far sì che il post venga nascosto tramite segnalazioni di sistema. (Non ne sono del tutto sicuro: sembra che i post possano essere nascosti solo tramite segnalazioni, non manualmente dallo staff? Lo staff può nascondere argomenti ma non singoli post. Per favore, correggimi se sbaglio.)
  4. Un moderatore modifica il post nascosto e inserisce media (immagini/video).
  5. Tentare di mostrare nuovamente il post (tramite l’interfaccia utente o tramite post.unhide! nella console Rails).
  6. L’operazione fallisce con:

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

1 Mi Piace

@kris.kotlarek cosa ne pensi di

Penso che sia sicuro, in particolare perché c’è un punto di chiamata che si aspetta ancora la convalida: PostRevisor#remove_flags_and_unhide_post quindi il parametro aggiuntivo ci permette di dargli un po’ più di sicurezza.

Detto questo, questi percorsi di codice sono molto complicati… quindi vale la pena di una revisione attenta.

1 Mi Piace