add checks for staff and system user before sending flags_agreed_and_post_deleted message

This commit is contained in:
Neil Lalonde 2018-07-24 19:25:00 -04:00
parent 9516d3de4b
commit 417bcf7d2e
2 changed files with 21 additions and 2 deletions

View File

@ -196,7 +196,7 @@ class PostDestroyer
end
def agree_with_flags
if @post.is_flagged?
if @post.is_flagged? && @user.id > 0 && @user.staff?
Jobs.enqueue(
:send_system_message,
user_id: @post.user.id,

View File

@ -566,9 +566,11 @@ describe PostDestroyer do
let!(:bookmark) { PostAction.act(moderator, second_post, PostActionType.types[:bookmark]) }
let!(:flag) { PostAction.act(moderator, second_post, PostActionType.types[:off_topic]) }
it "should delete public post actions and agree with flags" do
before do
SiteSetting.queue_jobs = false
end
it "should delete public post actions and agree with flags" do
second_post.expects(:update_flagged_posts_count)
PostDestroyer.new(moderator, second_post).destroy
@ -587,6 +589,23 @@ describe PostDestroyer do
expect(notification).to be_present
expect(notification.topic.title).to eq(I18n.t('system_messages.flags_agreed_and_post_deleted.subject_template'))
end
it "should not send the flags_agreed_and_post_deleted message if it was deleted by system" do
second_post.expects(:update_flagged_posts_count)
PostDestroyer.new(Discourse.system_user, second_post).destroy
expect(
Topic.where(title: I18n.t('system_messages.flags_agreed_and_post_deleted.subject_template')).exists?
).to eq(false)
end
it "should not send the flags_agreed_and_post_deleted message if it was deleted by author" do
SiteSetting.delete_removed_posts_after = 0
second_post.expects(:update_flagged_posts_count)
PostDestroyer.new(second_post.user, second_post).destroy
expect(
Topic.where(title: I18n.t('system_messages.flags_agreed_and_post_deleted.subject_template')).exists?
).to eq(false)
end
end
describe "user actions" do