X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/59e9203a0ac7d2ce1238055879577656c57dc216..945df0f150ea803e1a654b03155ecdb444c6ed1c:/app/models/user.rb diff --git a/app/models/user.rb b/app/models/user.rb index 5c21736b0..638928861 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -12,7 +12,6 @@ # home_lat :float # home_lon :float # home_zoom :integer default(3) -# nearby :integer default(50) # pass_salt :string # email_valid :boolean default(FALSE), not null # new_email :string @@ -395,6 +394,19 @@ class User < ApplicationRecord max_friends.clamp(0, Settings.max_friends_per_hour) end + def max_changeset_comments_per_hour + if moderator? + 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.initial_changeset_comments_per_hour, Settings.max_changeset_comments_per_hour) + max_comments /= 2**active_reports + max_comments.floor.clamp(Settings.min_changeset_comments_per_hour, Settings.max_changeset_comments_per_hour) + end + end + private def encrypt_password