Существует конфликт между настройками «Разрешённые группы для постов с встроенными медиа» и процедурой разблокировки постов.
Если пост создан пользователем, который не входит в разрешённые группы для медиа, а затем был скрыт (через жалобы), то при редактировании скрытого поста модератором и добавлении медиа попытка разблокировать пост завершится ошибкой:
ActiveRecord::RecordInvalid
Validation failed: Sorry, you can't embed media items in a post.
Процесс разблокировки повторно запускает проверку медиа, используя разрешения оригинального автора, а не модератора, что приводит к неудаче разблокировки.
Шаги для воспроизведения
Настройте Разрешённые группы для постов с встроенными медиа, исключив пользователей с низким уровнем доверия.
Создайте пост с помощью пользователя, не входящего в разрешённые группы.
Скройте пост с помощью системных жалоб. (Не уверен на 100% в этом пункте — кажется, посты можно скрывать только через жалобы, а не вручную персоналом? Персонал может скрывать темы, но не отдельные посты. Поправьте меня, если я ошибаюсь.)
Модератор редактирует скрытый пост и добавляет медиа (изображения/видео).
Попробуйте разблокировать пост (либо через интерфейс, либо через post.unhide! в консоли Rails).
Операция завершится ошибкой:
ActiveRecord::RecordInvalid Validation failed: Sorry, you can't embed media items in a post.
Я считаю, что это безопасно, особенно потому, что существует место вызова, которое всё ещё ожидает валидацию: PostRevisor#remove_flags_and_unhide_post, поэтому дополнительный параметр позволяет нам обеспечить немного большую безопасность.
Тем не менее, эти пути кода очень сложны… поэтому стоит провести тщательную проверку.