mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 18:30:26 -06:00
Merge pull request #6002 from featheredtoast/trust-previously-staged-users
FIX: don't punish a user for being previously staged for spam flags.
This commit is contained in:
commit
3725fd8345
@ -326,7 +326,7 @@ class Post < ActiveRecord::Base
|
||||
|
||||
# Prevent new users from posting the same hosts too many times.
|
||||
def has_host_spam?
|
||||
return false if acting_user.present? && (acting_user.staged? || acting_user.has_trust_level?(TrustLevel[1]))
|
||||
return false if acting_user.present? && (acting_user.staged? || acting_user.from_staged? || acting_user.has_trust_level?(TrustLevel[1]))
|
||||
return false if topic&.private_message?
|
||||
|
||||
total_hosts_usage.values.any? { |count| count >= SiteSetting.newuser_spam_host_threshold }
|
||||
|
@ -144,7 +144,7 @@ class Validators::PostValidator < ActiveModel::Validator
|
||||
private
|
||||
|
||||
def acting_user_is_trusted?(post, level = 1)
|
||||
post.acting_user.present? && post.acting_user.has_trust_level?(TrustLevel[level])
|
||||
post.acting_user.present? && (post.acting_user.has_trust_level?(TrustLevel[level]) || post.acting_user.from_staged?)
|
||||
end
|
||||
|
||||
def private_message?(post)
|
||||
|
@ -967,6 +967,14 @@ describe Post do
|
||||
expect(post.has_host_spam?).to eq(false)
|
||||
end
|
||||
|
||||
it "doesn't punish previously staged users" do
|
||||
SiteSetting.newuser_spam_host_threshold = 1
|
||||
user = Fabricate(:user, staged: true, trust_level: 0)
|
||||
user.unstage
|
||||
post = Fabricate(:post, raw: raw, user: user)
|
||||
expect(post.has_host_spam?).to eq(false)
|
||||
end
|
||||
|
||||
it "ignores private messages" do
|
||||
SiteSetting.newuser_spam_host_threshold = 1
|
||||
user = Fabricate(:user, trust_level: 0)
|
||||
|
Loading…
Reference in New Issue
Block a user