diff options
Diffstat (limited to 'lib/bulk_imports/groups/transformers/member_attributes_transformer.rb')
-rw-r--r-- | lib/bulk_imports/groups/transformers/member_attributes_transformer.rb | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/bulk_imports/groups/transformers/member_attributes_transformer.rb b/lib/bulk_imports/groups/transformers/member_attributes_transformer.rb index e92c898171a..b9de375d0e9 100644 --- a/lib/bulk_imports/groups/transformers/member_attributes_transformer.rb +++ b/lib/bulk_imports/groups/transformers/member_attributes_transformer.rb @@ -6,18 +6,20 @@ module BulkImports class MemberAttributesTransformer def transform(context, data) data - .then { |data| add_user(data) } + .then { |data| add_user(data, context) } .then { |data| add_access_level(data) } .then { |data| add_author(data, context) } end private - def add_user(data) + def add_user(data, context) user = find_user(data&.dig('user', 'public_email')) return unless user + cache_source_user_id(data, user, context) + data .except('user') .merge('user_id' => user.id) @@ -48,6 +50,16 @@ module BulkImports data.merge('created_by_id' => context.current_user.id) end + + def cache_source_user_id(data, user, context) + gid = data&.dig('user', 'user_gid') + + return unless gid + + source_user_id = GlobalID.parse(gid).model_id + + ::BulkImports::UsersMapper.new(context: context).cache_source_user_id(source_user_id, user.id) + end end end end |