FIX: Do not log 'personal message view' when sending webhook (#21375)

Similar to the issue resolved by 3b55de90e5
This commit is contained in:
David Taylor 2023-05-04 10:15:31 +01:00 committed by GitHub
parent c8232792eb
commit 05cd39d4d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 1 deletions

View File

@ -68,7 +68,7 @@ class WebHook < ActiveRecord::Base
if active_web_hooks("topic").exists? && topic.present?
payload ||=
begin
topic_view = TopicView.new(topic.id, Discourse.system_user)
topic_view = TopicView.new(topic.id, Discourse.system_user, skip_staff_action: true)
WebHook.generate_payload(:topic, topic_view, WebHookTopicViewSerializer)
end

View File

@ -219,6 +219,29 @@ RSpec.describe WebHook do
expect(payload["tags"]).to contain_exactly(tag.name)
end
it "should not log a personal message view when processing new topic" do
SiteSetting.log_personal_messages_views = true
Fabricate(:topic_web_hook)
post =
PostCreator.create!(
user,
raw: "raw",
title: "title",
skip_validations: true,
archetype: Archetype.private_message,
target_usernames: user.username,
)
topic_id = post.topic.id
job_args = Jobs::EmitWebHookEvent.jobs.last["args"].first
expect(job_args["event_name"]).to eq("topic_created")
payload = JSON.parse(job_args["payload"])
expect(payload["id"]).to eq(topic_id)
expect(UserHistory.where(action: UserHistory.actions[:check_personal_message]).count).to eq(0)
end
describe "when topic has been deleted" do
it "should not enqueue a post/topic edited hooks" do
topic.trash!