]> git.openstreetmap.org Git - rails.git/commitdiff
Limit the number of users counted for users#index
authorTom Hughes <tom@compton.nu>
Tue, 10 Sep 2024 17:50:38 +0000 (18:50 +0100)
committerTom Hughes <tom@compton.nu>
Wed, 11 Sep 2024 17:28:35 +0000 (18:28 +0100)
This view uses cursor based pagination but then undermines
that by counting the total number of users so limit the effect
of that but counting a maximum of ten pages of users.

app/controllers/users_controller.rb

index 4ebeb1ec3a271f9139fb6932b77d00d1a49cb514..bc1baf8a59208e682f5c6b60689ae46e0024e7bf 100644 (file)
@@ -38,7 +38,9 @@ class UsersController < ApplicationController
       users = users.where(:status => @params[:status]) if @params[:status]
       users = users.where(:creation_ip => @params[:ip]) if @params[:ip]
 
       users = users.where(:status => @params[:status]) if @params[:status]
       users = users.where(:creation_ip => @params[:ip]) if @params[:ip]
 
-      @users_count = users.count
+      @users_count = users.limit(501).count
+      @users_count = I18n.t("count.at_least_pattern", :count => 500) if @users_count > 500
+
       @users, @newer_users_id, @older_users_id = get_page_items(users, :limit => 50)
 
       render :partial => "page" if turbo_frame_request_id == "pagination"
       @users, @newer_users_id, @older_users_id = get_page_items(users, :limit => 50)
 
       render :partial => "page" if turbo_frame_request_id == "pagination"