Enforce disabling flagging hidden posts server-side

This commit is contained in:
Penar Musaraj 2018-11-05 10:00:59 -05:00
parent 94f628fb4c
commit 7b3432f711
2 changed files with 8 additions and 0 deletions

View File

@ -40,6 +40,9 @@ module PostGuardian
# Silenced users can't flag
return false if is_flag && @user.silenced?
# Hidden posts can't be flagged
return false if is_flag && post.hidden?
# post made by staff, but we don't allow staff flags
return false if is_flag &&
(!SiteSetting.allow_flagging_staff?) &&

View File

@ -116,6 +116,11 @@ describe Guardian do
expect(Guardian.new(user).post_can_act?(post, :spam)).to be_truthy
end
it "does not allow flagging of hidden posts" do
post.hidden = true
expect(Guardian.new(user).post_can_act?(post, :spam)).to be_falsey
end
it "allows flagging of staff posts when allow_flagging_staff is true" do
SiteSetting.allow_flagging_staff = true
staff_post = Fabricate(:post, user: Fabricate(:moderator))