mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 07:38:01 +08:00
FIX: Do not log 'pull_hotlinked_images' edits in the staff action log
This commit is contained in:
parent
e4b813df4c
commit
67a98946b8
|
@ -148,7 +148,7 @@ module Jobs
|
||||||
|
|
||||||
if start_raw == post.raw && raw != post.raw
|
if start_raw == post.raw && raw != post.raw
|
||||||
changes = { raw: raw, edit_reason: I18n.t("upload.edit_reason") }
|
changes = { raw: raw, edit_reason: I18n.t("upload.edit_reason") }
|
||||||
post.revise(Discourse.system_user, changes, bypass_bump: true)
|
post.revise(Discourse.system_user, changes, bypass_bump: true, skip_staff_log: true)
|
||||||
elsif has_downloaded_image || has_new_large_image || has_new_broken_image
|
elsif has_downloaded_image || has_new_large_image || has_new_broken_image
|
||||||
post.trigger_post_process(bypass_bump: true)
|
post.trigger_post_process(bypass_bump: true)
|
||||||
end
|
end
|
||||||
|
|
|
@ -116,6 +116,7 @@ class PostRevisor
|
||||||
# - bypass_bump: do not bump the topic, even if last post
|
# - bypass_bump: do not bump the topic, even if last post
|
||||||
# - skip_validations: ask ActiveRecord to skip validations
|
# - skip_validations: ask ActiveRecord to skip validations
|
||||||
# - skip_revision: do not create a new PostRevision record
|
# - skip_revision: do not create a new PostRevision record
|
||||||
|
# - skip_staff_log: skip creating an entry in the staff action log
|
||||||
def revise!(editor, fields, opts = {})
|
def revise!(editor, fields, opts = {})
|
||||||
@editor = editor
|
@editor = editor
|
||||||
@fields = fields.with_indifferent_access
|
@fields = fields.with_indifferent_access
|
||||||
|
@ -183,7 +184,7 @@ class PostRevisor
|
||||||
end
|
end
|
||||||
|
|
||||||
# We log staff edits to posts
|
# We log staff edits to posts
|
||||||
if @editor.staff? && @editor.id != @post.user.id && @fields.has_key?('raw')
|
if @editor.staff? && @editor.id != @post.user.id && @fields.has_key?('raw') && !@opts[:skip_staff_log]
|
||||||
StaffActionLogger.new(@editor).log_post_edit(
|
StaffActionLogger.new(@editor).log_post_edit(
|
||||||
@post,
|
@post,
|
||||||
old_raw: old_raw
|
old_raw: old_raw
|
||||||
|
|
|
@ -494,6 +494,19 @@ describe PostRevisor do
|
||||||
expect(log.details).to eq("Hello world\n\n---\n\nlets totally update the body")
|
expect(log.details).to eq("Hello world\n\n---\n\nlets totally update the body")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "doesn't log an edit when skip_staff_log is true" do
|
||||||
|
subject.revise!(
|
||||||
|
moderator,
|
||||||
|
{ raw: "lets totally update the body" },
|
||||||
|
skip_staff_log: true
|
||||||
|
)
|
||||||
|
log = UserHistory.where(
|
||||||
|
acting_user_id: moderator.id,
|
||||||
|
action: UserHistory.actions[:post_edit]
|
||||||
|
).first
|
||||||
|
expect(log).to be_blank
|
||||||
|
end
|
||||||
|
|
||||||
it "doesn't log an edit when a staff member edits their own post" do
|
it "doesn't log an edit when a staff member edits their own post" do
|
||||||
revisor = PostRevisor.new(
|
revisor = PostRevisor.new(
|
||||||
Fabricate(:post, user: moderator)
|
Fabricate(:post, user: moderator)
|
||||||
|
|
|
@ -51,7 +51,8 @@ describe Jobs::PullHotlinkedImages do
|
||||||
|
|
||||||
expect do
|
expect do
|
||||||
Jobs::PullHotlinkedImages.new.execute(post_id: post.id)
|
Jobs::PullHotlinkedImages.new.execute(post_id: post.id)
|
||||||
end.to change { Upload.count }.by(1)
|
end.to change { Upload.count }.by(1) &
|
||||||
|
change { UserHistory.count }.by(0) # Should not add to the staff log
|
||||||
|
|
||||||
expect(post.reload.raw).to eq("![](#{Upload.last.short_url})")
|
expect(post.reload.raw).to eq("![](#{Upload.last.short_url})")
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user