FEATURE: Do not check consecutive replies for original poster. (#6714)

This commit is contained in:
Bianca Nenciu 2018-12-03 12:32:29 +02:00 committed by Jeff Atwood
parent 142361d6da
commit 3f8fa4ad4e
2 changed files with 13 additions and 0 deletions

View File

@ -146,6 +146,7 @@ class Validators::PostValidator < ActiveModel::Validator
return if SiteSetting.max_consecutive_replies == 0 || post.id || post.acting_user&.staff? || private_message?(post)
topic = post.topic
return if topic.posts.first&.user == post.user
last_posts_count = DB.query_single(<<~SQL, topic_id: post.topic_id, user_id: post.acting_user.id, max_replies: SiteSetting.max_consecutive_replies).first
SELECT COUNT(*)

View File

@ -229,7 +229,19 @@ describe Validators::PostValidator do
SiteSetting.max_consecutive_replies = 2
end
it "should always allow posting" do
[user, user, user, other_user, user, user, user].each_with_index do |u, i|
post = Post.new(user: user, topic: topic, raw: "post number #{i}")
validator.force_edit_last_validator(post)
expect(post.errors.count).to eq(0)
post.save
end
end
it "should not allow posting more than 2 consecutive replies" do
post = Post.new(user: other_user, topic: topic, raw: "post number 0")
post.save
1.upto(3).each do |i|
post = Post.new(user: user, topic: topic, raw: "post number #{i}")
validator.force_edit_last_validator(post)