FIX: Sending a PM through a flag on a deleted post

Because we allow all the other flag types on a deleted post we should be
able to send a pm to the user letting them know why we deleted their
post.

Bug report:

https://meta.discourse.org/t/-/161156
This commit is contained in:
Blake Erickson 2020-08-19 17:31:40 -06:00
parent d2c504ea86
commit 4395e4d165
2 changed files with 3 additions and 1 deletions

View File

@ -33,7 +33,7 @@ module PostGuardian
return false if action_key == :notify_user && (post.user.blank? || (!is_staff? && opts[:is_warning].present? && opts[:is_warning] == 'true'))
taken = opts[:taken_actions].try(:keys).to_a
is_flag = PostActionType.notify_flag_types[action_key]
is_flag = PostActionType.notify_flag_types[action_key] || PostActionType.custom_types[action_key]
already_taken_this_action = taken.any? && taken.include?(PostActionType.types[action_key])
already_did_flagging = taken.any? && (taken & PostActionType.notify_flag_types.values).any?

View File

@ -112,6 +112,8 @@ describe Guardian do
it "returns false when the post is deleted" do
post.deleted_at = Time.now
expect(Guardian.new(user).post_can_act?(post, :like)).to be_falsey
expect(Guardian.new(admin).post_can_act?(post, :spam)).to be_truthy
expect(Guardian.new(admin).post_can_act?(post, :notify_user)).to be_truthy
end
it "works as expected for silenced users" do