Rename friends rate limit as follows

This commit is contained in:
Tom Hughes 2025-01-17 22:56:48 +00:00
parent b5006acd81
commit 5eb4c7c0d1
4 changed files with 8 additions and 8 deletions

View file

@ -22,7 +22,7 @@ class FollowsController < ApplicationController
follow.following = @friend follow.following = @friend
if current_user.follows?(@friend) if current_user.follows?(@friend)
flash[:warning] = t ".already_followed", :name => @friend.display_name flash[:warning] = t ".already_followed", :name => @friend.display_name
elsif current_user.follows.where(:created_at => Time.now.utc - 1.hour..).count >= current_user.max_friends_per_hour elsif current_user.follows.where(:created_at => Time.now.utc - 1.hour..).count >= current_user.max_follows_per_hour
flash[:error] = t ".limit_exceeded" flash[:error] = t ".limit_exceeded"
elsif follow.save elsif follow.save
flash[:notice] = t ".success", :name => @friend.display_name flash[:notice] = t ".success", :name => @friend.display_name

View file

@ -411,12 +411,12 @@ class User < ApplicationRecord
max_messages.clamp(0, Settings.max_messages_per_hour) max_messages.clamp(0, Settings.max_messages_per_hour)
end end
def max_friends_per_hour def max_follows_per_hour
account_age_in_seconds = Time.now.utc - created_at account_age_in_seconds = Time.now.utc - created_at
account_age_in_hours = account_age_in_seconds / 3600 account_age_in_hours = account_age_in_seconds / 3600
recent_friends = Follow.where(:following => self).where(:created_at => Time.now.utc - 3600..).count recent_follows = Follow.where(:following => self).where(:created_at => Time.now.utc - 3600..).count
max_friends = account_age_in_hours.ceil + recent_friends - (active_reports * 10) max_follows = account_age_in_hours.ceil + recent_follows - (active_reports * 10)
max_friends.clamp(0, Settings.max_friends_per_hour) max_follows.clamp(0, Settings.max_follows_per_hour)
end end
def max_changeset_comments_per_hour def max_changeset_comments_per_hour

View file

@ -63,8 +63,8 @@ max_messages_per_hour: 60
default_message_query_limit: 100 default_message_query_limit: 100
# Maximum number of messages returned by inbox and outbox message api # Maximum number of messages returned by inbox and outbox message api
max_message_query_limit: 100 max_message_query_limit: 100
# Rate limit for friending # Rate limit for following
max_friends_per_hour: 60 max_follows_per_hour: 60
# Rate limit for changeset comments # Rate limit for changeset comments
min_changeset_comments_per_hour: 1 min_changeset_comments_per_hour: 1
initial_changeset_comments_per_hour: 6 initial_changeset_comments_per_hour: 6

View file

@ -6,7 +6,7 @@ class FollowsTest < ApplicationSystemTestCase
sign_in_as create(:user) sign_in_as create(:user)
with_settings(:max_friends_per_hour => 0) do with_settings(:max_follows_per_hour => 0) do
visit user_path(following) visit user_path(following)
assert_link "Follow" assert_link "Follow"