From e8c576cca9ac1d8c7b09a8eb943a3e55134c7535 Mon Sep 17 00:00:00 2001 From: Dan Ungureanu Date: Wed, 31 Mar 2021 13:42:53 +0300 Subject: [PATCH] FIX: User fields are case insensitive in bulk CSV (#12559) The CSV column title had to be case sensitive match with the name of the user field which was unnecessary complex. --- app/jobs/regular/bulk_invite.rb | 2 +- spec/jobs/bulk_invite_spec.rb | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/jobs/regular/bulk_invite.rb b/app/jobs/regular/bulk_invite.rb index cb9b0587993..5a4d848d934 100644 --- a/app/jobs/regular/bulk_invite.rb +++ b/app/jobs/regular/bulk_invite.rb @@ -93,7 +93,7 @@ module Jobs user_fields = {} fields.each do |key, value| - @user_fields[key] ||= UserField.find_by(name: key)&.id || :nil + @user_fields[key] ||= UserField.where('name ILIKE ?', key).pluck_first(:id) || :nil user_fields[@user_fields[key]] = value if @user_fields[key] != :nil end diff --git a/spec/jobs/bulk_invite_spec.rb b/spec/jobs/bulk_invite_spec.rb index 95ebd240c24..f229dbd026f 100644 --- a/spec/jobs/bulk_invite_spec.rb +++ b/spec/jobs/bulk_invite_spec.rb @@ -82,14 +82,14 @@ describe Jobs::BulkInvite do end it 'can create staged users and prepulate user fields' do - user_field = Fabricate(:user_field) + user_field = Fabricate(:user_field, name: "Location") described_class.new.execute( current_user_id: admin.id, invites: [ { email: 'test@discourse.org' }, # new user without user fields - { email: user.email, user_field.name => 'value 1' }, # existing user with user fields - { email: staged_user.email, user_field.name => 'value 2' }, # existing staged user with user fields - { email: 'test2@discourse.org', user_field.name => 'value 3' } # new staged user with user fields + { email: user.email, location: 'value 1' }, # existing user with user fields + { email: staged_user.email, location: 'value 2' }, # existing staged user with user fields + { email: 'test2@discourse.org', location: 'value 3' } # new staged user with user fields ] )