From: Tom Hughes Date: Wed, 30 Aug 2023 17:25:06 +0000 (+0100) Subject: Improve naming of changeset comment rate limit settings X-Git-Tag: live~1100^2~2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/e210b4efbf6ab7fa2e89a88bf6e0ab666cb4f6fd Improve naming of changeset comment rate limit settings --- diff --git a/app/models/user.rb b/app/models/user.rb index fe2a98d61..3eb03a2fe 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -397,14 +397,14 @@ class User < ApplicationRecord 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 - 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.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 diff --git a/config/settings.yml b/config/settings.yml index 5330ed678..3ea298efc 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -56,8 +56,10 @@ max_messages_per_hour: 60 # 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 +moderator_changeset_comments_per_hour: 36000 # Domain for handling message replies #messages_domain: "messages.openstreetmap.org" # MaxMind GeoIPv2 database diff --git a/test/controllers/api/changeset_comments_controller_test.rb b/test/controllers/api/changeset_comments_controller_test.rb index 624b8a358..2244485cb 100644 --- a/test/controllers/api/changeset_comments_controller_test.rb +++ b/test/controllers/api/changeset_comments_controller_test.rb @@ -140,8 +140,8 @@ module Api 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