「埋め込みメディア投稿が許可されているグループ」と「投稿の表示に戻すワークフロー」の間に競合があります。
投稿者が許可されたメディアグループに属していない場合、その投稿が(フラグによって)非表示になった後、モデレーターがその非表示の投稿を編集してメディアを追加すると、投稿を表示に戻そうとすると以下のエラーで失敗します。
ActiveRecord::RecordInvalid
Validation failed: Sorry, you can't embed media items in a post.
表示に戻すプロセスは、モデレーターの権限ではなく、元の投稿者の権限を使用してメディアの検証を再実行するため、表示に戻す処理が失敗します。
再現手順
- 埋め込みメディア投稿が許可されているグループを設定し、信頼度の低いユーザーを除外します。
- 許可されたグループに含まれていないユーザーを使用して投稿を作成します。
- その投稿がシステムフラグによって非表示にされるようにします。(ここが少し不確かです。投稿はフラグによってのみ非表示にでき、スタッフによる手動操作はできないように見えます。スタッフはトピックは非表示にできますが、個々の投稿は非表示にできません。もし間違っていたら訂正してください。)
- モデレーターが非表示の投稿を編集し、メディア(画像/動画)を挿入します。
- 投稿を表示に戻そうと試みます(UIから、またはRailsコンソールで
post.unhide!を実行します)。 - 操作が以下のエラーで失敗します。
ActiveRecord::RecordInvalid Validation failed: Sorry, you can't embed media items in a post.