follow.following = @friend
if current_user.follows?(@friend)
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"
elsif follow.save
flash[:notice] = t ".success", :name => @friend.display_name
max_messages.clamp(0, Settings.max_messages_per_hour)
end
- def max_friends_per_hour
+ def max_follows_per_hour
account_age_in_seconds = Time.now.utc - created_at
account_age_in_hours = account_age_in_seconds / 3600
- recent_friends = 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_friends.clamp(0, Settings.max_friends_per_hour)
+ recent_follows = Follow.where(:following => self).where(:created_at => Time.now.utc - 3600..).count
+ max_follows = account_age_in_hours.ceil + recent_follows - (active_reports * 10)
+ max_follows.clamp(0, Settings.max_follows_per_hour)
end
def max_changeset_comments_per_hour
default_message_query_limit: 100
# Maximum number of messages returned by inbox and outbox message api
max_message_query_limit: 100
-# Rate limit for friending
-max_friends_per_hour: 60
+# Rate limit for following
+max_follows_per_hour: 60
# Rate limit for changeset comments
min_changeset_comments_per_hour: 1
initial_changeset_comments_per_hour: 6
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)
assert_link "Follow"