]> git.openstreetmap.org Git - rails.git/commitdiff
Improve naming of changeset comment rate limit settings
authorTom Hughes <tom@compton.nu>
Wed, 30 Aug 2023 17:25:06 +0000 (18:25 +0100)
committerTom Hughes <tom@compton.nu>
Wed, 30 Aug 2023 17:25:06 +0000 (18:25 +0100)
app/models/user.rb
config/settings.yml
test/controllers/api/changeset_comments_controller_test.rb

index fe2a98d61e31f6af42e6a085bdcf19e93a21d546..3eb03a2fe4ae93bfb2010b359265f169b8315f79 100644 (file)
@@ -397,14 +397,14 @@ class User < ApplicationRecord
 
   def max_changeset_comments_per_hour
     if moderator?
 
   def max_changeset_comments_per_hour
     if moderator?
-      36000
+      Settings.moderator_changeset_comments_per_hour
     else
       previous_comments = changeset_comments.limit(200).count
       active_reports = issues.with_status(:open).sum(:reports_count)
       max_comments = previous_comments / 200.0 * Settings.max_changeset_comments_per_hour
     else
       previous_comments = changeset_comments.limit(200).count
       active_reports = issues.with_status(:open).sum(:reports_count)
       max_comments = previous_comments / 200.0 * Settings.max_changeset_comments_per_hour
-      max_comments = max_comments.floor.clamp(Settings.min_changeset_comments_per_hour, Settings.max_changeset_comments_per_hour)
+      max_comments = max_comments.floor.clamp(Settings.initial_changeset_comments_per_hour, Settings.max_changeset_comments_per_hour)
       max_comments /= 2**active_reports
       max_comments /= 2**active_reports
-      max_comments.floor.clamp(1, Settings.max_changeset_comments_per_hour)
+      max_comments.floor.clamp(Settings.min_changeset_comments_per_hour, Settings.max_changeset_comments_per_hour)
     end
   end
 
     end
   end
 
index 5330ed678c47333acd0e5ca388709da14100227b..3ea298efcb4378f4073397d02d301d785c772ff2 100644 (file)
@@ -56,8 +56,10 @@ max_messages_per_hour: 60
 # Rate limit for friending
 max_friends_per_hour: 60
 # Rate limit for changeset comments
 # Rate limit for friending
 max_friends_per_hour: 60
 # Rate limit for changeset comments
-min_changeset_comments_per_hour: 6
+min_changeset_comments_per_hour: 1
+initial_changeset_comments_per_hour: 6
 max_changeset_comments_per_hour: 60
 max_changeset_comments_per_hour: 60
+moderator_changeset_comments_per_hour: 36000
 # Domain for handling message replies
 #messages_domain: "messages.openstreetmap.org"
 # MaxMind GeoIPv2 database
 # Domain for handling message replies
 #messages_domain: "messages.openstreetmap.org"
 # MaxMind GeoIPv2 database
index 624b8a35808645c1964c3b7fd40aa5fa5f46b262..2244485cb069061e11d2ffdae93a6e16eadbe32b 100644 (file)
@@ -140,8 +140,8 @@ module Api
 
       auth_header = basic_authorization_header user.email, "test"
 
 
       auth_header = basic_authorization_header user.email, "test"
 
-      assert_difference "ChangesetComment.count", Settings.min_changeset_comments_per_hour do
-        1.upto(Settings.min_changeset_comments_per_hour) do |count|
+      assert_difference "ChangesetComment.count", Settings.initial_changeset_comments_per_hour do
+        1.upto(Settings.initial_changeset_comments_per_hour) do |count|
           post changeset_comment_path(:id => changeset, :text => "Comment #{count}"), :headers => auth_header
           assert_response :success
         end
           post changeset_comment_path(:id => changeset, :text => "Comment #{count}"), :headers => auth_header
           assert_response :success
         end