From 05288144b5952a20f1602dc859ccfa4a3f3d7ec6 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Mon, 7 Mar 2016 18:47:10 +0530 Subject: [PATCH] FIX: export user list based on trust level filter --- .../javascripts/admin/routes/admin-users-list.js.es6 | 2 +- app/controllers/export_csv_controller.rb | 2 +- app/jobs/regular/export_csv_file.rb | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/admin/routes/admin-users-list.js.es6 b/app/assets/javascripts/admin/routes/admin-users-list.js.es6 index cb7cfdd9bdb..ab72eb893c2 100644 --- a/app/assets/javascripts/admin/routes/admin-users-list.js.es6 +++ b/app/assets/javascripts/admin/routes/admin-users-list.js.es6 @@ -6,7 +6,7 @@ export default Discourse.Route.extend({ actions: { exportUsers() { - exportEntity('user_list').then(outputExportResult); + exportEntity('user_list', {trust_level: this.controllerFor('admin-users-list-show').get('query')}).then(outputExportResult); }, sendInvites() { diff --git a/app/controllers/export_csv_controller.rb b/app/controllers/export_csv_controller.rb index cbb6399acb3..5545f872d4f 100644 --- a/app/controllers/export_csv_controller.rb +++ b/app/controllers/export_csv_controller.rb @@ -30,7 +30,7 @@ class ExportCsvController < ApplicationController @_export_params ||= begin params.require(:entity) params.require(:entity_type) - params.permit(:entity, :entity_type, args: [:name, :start_date, :end_date, :category_id, :group_id]) + params.permit(:entity, :entity_type, args: [:name, :start_date, :end_date, :category_id, :group_id, :trust_level]) end end end diff --git a/app/jobs/regular/export_csv_file.rb b/app/jobs/regular/export_csv_file.rb index 1f955f574e8..ddb6d6b9290 100644 --- a/app/jobs/regular/export_csv_file.rb +++ b/app/jobs/regular/export_csv_file.rb @@ -53,10 +53,14 @@ module Jobs def user_list_export user_array = [] user_field_ids = UserField.pluck(:id) + condition = {} + if @extra && @extra[:trust_level] && trust_level = TrustLevel.levels[@extra[:trust_level].to_sym] + condition = {trust_level: trust_level} + end if SiteSetting.enable_sso # SSO enabled - User.includes(:user_stat, :single_sign_on_record, :groups).find_each do |user| + User.where(condition).includes(:user_stat, :single_sign_on_record, :groups).find_each do |user| user_info_string = get_base_user_string(user) user_info_string = add_single_sign_on(user, user_info_string) user_info_string = add_custom_fields(user, user_info_string, user_field_ids) @@ -66,7 +70,7 @@ module Jobs end else # SSO disabled - User.includes(:user_stat, :groups).find_each do |user| + User.where(condition).includes(:user_stat, :groups).find_each do |user| user_info_string = get_base_user_string(user) user_info_string = add_custom_fields(user, user_info_string, user_field_ids) user_info_string = add_group_names(user, user_info_string)