diff --git a/app/services/imports/user_import_service.rb b/app/services/imports/user_import_service.rb index 492cc715c..aec227f54 100644 --- a/app/services/imports/user_import_service.rb +++ b/app/services/imports/user_import_service.rb @@ -16,12 +16,11 @@ module Imports name = user_field_value(xml_document, "full-name") email = user_field_value(xml_document, "email").downcase.strip deleted = user_field_value(xml_document, "deleted") - date_deactivated = user_field_value(xml_document, "date-deactivated") if User.find_by(old_user_id:, organisation:) @logger.warn("User #{name} with old user id #{old_user_id} is already present, skipping.") - elsif deleted == "true" || date_deactivated.present? - @logger.warn("User #{name} with old user id #{old_user_id} is deleted or deactivated, skipping.") + elsif deleted == "true" + @logger.warn("User #{name} with old user id #{old_user_id} is deleted, skipping.") elsif (user = User.find_by(email:, organisation:)) is_dpo = user.is_data_protection_officer? || is_dpo?(user_field_value(xml_document, "user-type")) role = highest_role(user.role, role(user_field_value(xml_document, "user-type"))) @@ -38,6 +37,7 @@ module Imports role: role(user_field_value(xml_document, "user-type")), is_dpo: is_dpo?(user_field_value(xml_document, "user-type")), is_key_contact: is_key_contact?(user_field_value(xml_document, "contact-priority-id")), + active: user_field_value(xml_document, "active"), ) end end diff --git a/spec/fixtures/softwire_imports/users/9ed81a262215a1634f0809effa683e38924d8bcb.xml b/spec/fixtures/softwire_imports/users/9ed81a262215a1634f0809effa683e38924d8bcb.xml new file mode 100644 index 000000000..791486bab --- /dev/null +++ b/spec/fixtures/softwire_imports/users/9ed81a262215a1634f0809effa683e38924d8bcb.xml @@ -0,0 +1,13 @@ + + 9ed81a262215a1634f0809effa683e38924d8bcb + xxx + John Doe + john.doe + 7c5bd5fb549c09a2c55d7cb90d7ba84927e64618 + john.doe2@gov.uk + Data Provider + false + false + None + 02012345678 + diff --git a/spec/services/imports/user_import_service_spec.rb b/spec/services/imports/user_import_service_spec.rb index 541ce899e..b3be1cd12 100644 --- a/spec/services/imports/user_import_service_spec.rb +++ b/spec/services/imports/user_import_service_spec.rb @@ -32,6 +32,7 @@ RSpec.describe Imports::UserImportService do expect(user).to be_data_provider expect(user.organisation.old_org_id).to eq(old_org_id) expect(user.is_key_contact?).to be false + expect(user.active).to be true end it "refuses to create a user belonging to a non existing organisation" do @@ -154,6 +155,15 @@ RSpec.describe Imports::UserImportService do .not_to change(User, :count) end end + + context "when the user was deactivated in the old system" do + let(:old_user_id) { "9ed81a262215a1634f0809effa683e38924d8bcb" } + + it "marks them as not active" do + import_service.create_users("user_directory") + expect(User.find_by(old_user_id:).active).to be false + end + end end end end