diff --git a/app/services/imports/user_import_service.rb b/app/services/imports/user_import_service.rb index 462f021d6..79a706264 100644 --- a/app/services/imports/user_import_service.rb +++ b/app/services/imports/user_import_service.rb @@ -58,7 +58,7 @@ module Imports def create_user_who_signed_dpc(xml_document) dpc_signer_name = field_value(dataprotect_xml, "dataprotect", "dp-user") name = user_field_value(xml_document, "full-name") - if name == dpc_signer_name + if name == dpc_signer_name && is_dpo?(user_field_value(xml_document, "user-type")) create_user(xml_document) end end diff --git a/spec/services/imports/user_import_service_spec.rb b/spec/services/imports/user_import_service_spec.rb index 11cb2f3d9..aba9e838a 100644 --- a/spec/services/imports/user_import_service_spec.rb +++ b/spec/services/imports/user_import_service_spec.rb @@ -236,7 +236,7 @@ RSpec.describe Imports::UserImportService do end end - context "when the user is not to be imported" do + context "when the user has a different name to the dsa signer" do let(:old_user_id) { "80d9b73aa1c88b6e5c36ee49be9050b923b4a1bb" } it "does not create a user" do @@ -247,6 +247,18 @@ RSpec.describe Imports::UserImportService do expect(user).to be_nil end end + + context "when the user has the name of the dsa signer but is not a dpo" do + let(:old_user_id) { "9ed81a262215a1634f0809effa683e38924d8bcb" } + + it "does not create a user" do + FactoryBot.create(:organisation, old_org_id:) + import_service.create_users_who_signed_dpcs("user_directory") + + user = LegacyUser.find_by(old_user_id:)&.user + expect(user).to be_nil + end + end end end end