Browse Source

feat: add dpo check before importing user

pull/1948/head
natdeanlewissoftwire 3 years ago
parent
commit
8c4fd40bcf
  1. 2
      app/services/imports/user_import_service.rb
  2. 14
      spec/services/imports/user_import_service_spec.rb

2
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

14
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

Loading…
Cancel
Save