From a609e1b655a863a2c32245daadca980259b2150a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Mon, 24 Nov 2014 19:48:08 +0100 Subject: [PATCH] fix the build :fired: --- lib/admin_user_index_query.rb | 112 +++++++++++++++++----------------- 1 file changed, 55 insertions(+), 57 deletions(-) diff --git a/lib/admin_user_index_query.rb b/lib/admin_user_index_query.rb index f01094704f2..cfcdd4ca4f4 100644 --- a/lib/admin_user_index_query.rb +++ b/lib/admin_user_index_query.rb @@ -26,73 +26,71 @@ class AdminUserIndexQuery find_users_query.count end - private + def initialize_query_with_order(klass) + order = [params[:order]] - def initialize_query_with_order(klass) - order = [params[:order]] + if params[:query] == "active" + order << "COALESCE(last_seen_at, to_date('1970-01-01', 'YYYY-MM-DD')) DESC" + else + order << "created_at DESC" + end - if params[:query] == "active" - order << "COALESCE(last_seen_at, to_date('1970-01-01', 'YYYY-MM-DD')) DESC" + order << "username" + + klass.order(order.reject(&:blank?).join(",")) + end + + def filter_by_trust + levels = trust_levels.map { |key, _| key.to_s } + if levels.include?(params[:query]) + @query.where('trust_level = ?', trust_levels[params[:query].to_sym]) + end + end + + def filter_by_query_classification + case params[:query] + when 'admins' then @query.where(admin: true) + when 'moderators' then @query.where(moderator: true) + when 'blocked' then @query.blocked + when 'suspended' then @query.suspended + when 'pending' then @query.not_suspended.where(approved: false) + end + end + + def filter_by_search + if params[:filter].present? + if ip = IPAddr.new(params[:filter]) rescue nil + @query.where('ip_address <<= :ip OR registration_ip_address <<= :ip', ip: ip.to_cidr_s) else - order << "created_at DESC" - end - - order << "username" - - klass.order(order.reject(&:blank?).join(",")) - end - - def filter_by_trust - levels = trust_levels.map { |key, _| key.to_s } - if levels.include?(params[:query]) - @query.where('trust_level = ?', trust_levels[params[:query].to_sym]) + @query.where('username_lower ILIKE :filter OR email ILIKE :filter', filter: "%#{params[:filter]}%") end end + end - def filter_by_query_classification - case params[:query] - when 'admins' then @query.where(admin: true) - when 'moderators' then @query.where(moderator: true) - when 'blocked' then @query.blocked - when 'suspended' then @query.suspended - when 'pending' then @query.not_suspended.where(approved: false) - end + def filter_by_ip + if params[:ip].present? + @query.where('ip_address = :ip OR registration_ip_address = :ip', ip: params[:ip]) end + end - def filter_by_search - if params[:filter].present? - if ip = IPAddr.new(params[:filter]) rescue nil - @query.where('ip_address <<= :ip OR registration_ip_address <<= :ip', ip: ip.to_cidr_s) - else - @query.where('username_lower ILIKE :filter OR email ILIKE :filter', filter: "%#{params[:filter]}%") - end - end + def filter_exclude + if params[:exclude].present? + @query.where('id != ?', params[:exclude]) end + end - def filter_by_ip - if params[:ip].present? - @query.where('ip_address = :ip OR registration_ip_address = :ip', ip: params[:ip]) - end - end + # this might not be needed in rails 4 ? + def append(active_relation) + @query = active_relation if active_relation + end - def filter_exclude - if params[:exclude].present? - @query.where('id != ?', params[:exclude]) - end - end - - # this might not be needed in rails 4 ? - def append(active_relation) - @query = active_relation if active_relation - end - - def find_users_query - append filter_by_trust - append filter_by_query_classification - append filter_by_ip - append filter_exclude - append filter_by_search - @query - end + def find_users_query + append filter_by_trust + append filter_by_query_classification + append filter_by_ip + append filter_exclude + append filter_by_search + @query + end end