FIX: Don't send image sizes for emojis/avatars (#20589)

When using the "review media unless trust level" setting, posts with emojis or quotes will end up in the review queue even though they don't have any uploaded media. That is because our heuristic for this in the new post manager relies on image_sizes. This commit skips sending image_sizes for emojis and avatars. 

Co-authored-by: Régis Hanol <regis@hanol.fr>
This commit is contained in:
Penar Musaraj 2023-03-09 09:53:27 -05:00 committed by GitHub
parent 3cab9d5f80
commit 673cd4196f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 2 deletions

View File

@ -23,5 +23,9 @@
</DEditor>
{{#if this.allowUpload}}
<PickFilesButton @fileInputId="file-uploader" @allowMultiple={{true}} />
<PickFilesButton
@fileInputId="file-uploader"
@allowMultiple={{true}}
name="file-uploader"
/>
{{/if}}

View File

@ -1008,7 +1008,9 @@ export default Controller.extend({
// TODO: This should not happen in model
const imageSizes = {};
document
.querySelectorAll("#reply-control .d-editor-preview img")
.querySelectorAll(
"#reply-control .d-editor-preview img:not(.avatar, .emoji)"
)
.forEach((e) => {
const src = e.src;

View File

@ -0,0 +1,36 @@
# frozen_string_literal: true
describe "Composer using review_media", type: :system, js: true do
fab!(:user) { Fabricate(:user) }
fab!(:topic) { Fabricate(:topic, category: Category.find(SiteSetting.uncategorized_category_id)) }
fab!(:post) { Fabricate(:post, topic: topic) }
fab!(:upload) { Fabricate(:upload) }
let(:topic_page) { PageObjects::Pages::Topic.new }
before do
SiteSetting.review_media_unless_trust_level = 3
sign_in user
end
it "does not flag a post with an emoji" do
topic_page.visit_topic_and_open_composer(topic)
topic_page.fill_in_composer(" this one has an emoji: :mask: ")
within(".d-editor-preview") { expect(page).to have_css(".emoji") }
topic_page.send_reply
expect(topic_page).to have_post_number(2)
expect(page).not_to have_css(".post-enqueued-modal")
end
it "flags a post with an image" do
topic_page.visit_topic_and_open_composer(topic)
topic_page.fill_in_composer(" this one has an upload: ")
attach_file "file-uploader", "#{Rails.root}/spec/fixtures/images/logo.jpg", make_visible: true
within(".d-editor-preview") { expect(page).to have_css("img") }
topic_page.send_reply
expect(page).to have_css(".post-enqueued-modal")
end
end