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 end
def agree_with_flags def agree_with_flags
if @post.is_flagged? if @post.is_flagged? && @user.id > 0 && @user.staff?
Jobs.enqueue( Jobs.enqueue(
:send_system_message, :send_system_message,
user_id: @post.user.id, 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!(:bookmark) { PostAction.act(moderator, second_post, PostActionType.types[:bookmark]) }
let!(:flag) { PostAction.act(moderator, second_post, PostActionType.types[:off_topic]) } 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 SiteSetting.queue_jobs = false
end
it "should delete public post actions and agree with flags" do
second_post.expects(:update_flagged_posts_count) second_post.expects(:update_flagged_posts_count)
PostDestroyer.new(moderator, second_post).destroy PostDestroyer.new(moderator, second_post).destroy
@ -587,6 +589,23 @@ describe PostDestroyer do
expect(notification).to be_present expect(notification).to be_present
expect(notification.topic.title).to eq(I18n.t('system_messages.flags_agreed_and_post_deleted.subject_template')) expect(notification.topic.title).to eq(I18n.t('system_messages.flags_agreed_and_post_deleted.subject_template'))
end 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 end
describe "user actions" do describe "user actions" do