diff --git a/lib/gitlab/import/placeholder_user_creator.rb b/lib/gitlab/import/placeholder_user_creator.rb index 6ff5396eaaab12273de8d2b9ffe562c5e10810f8..ad62865fec75e2d7cc39e0fac5a2782ac6ce111d 100644 --- a/lib/gitlab/import/placeholder_user_creator.rb +++ b/lib/gitlab/import/placeholder_user_creator.rb @@ -3,11 +3,12 @@ module Gitlab module Import class PlaceholderUserCreator - def initialize(import_type:, source_hostname:, source_name:, source_username:) + def initialize(import_type:, source_hostname:, source_name:, source_username:, organization:) @import_type = import_type @source_hostname = source_hostname @source_name = source_name @source_username = source_username + @organization = organization end def execute @@ -18,16 +19,15 @@ def execute email: placeholder_email ) - user.assign_personal_namespace(Organizations::Organization.default_organization) - Namespace.with_disabled_organization_validation do - user.save! - end + user.assign_personal_namespace(organization) + user.save! + user end private - attr_reader :import_type, :source_hostname, :source_name, :source_username + attr_reader :import_type, :source_hostname, :source_name, :source_username, :organization def placeholder_name # Some APIs don't expose users' names, so set a default if it's nil diff --git a/lib/gitlab/import/source_user_mapper.rb b/lib/gitlab/import/source_user_mapper.rb index dc23f890ce809ac6fb2849b159361a93b3d2eb52..ea39cbb6486e1958bc61402eb5ca3c692dbe2b00 100644 --- a/lib/gitlab/import/source_user_mapper.rb +++ b/lib/gitlab/import/source_user_mapper.rb @@ -71,7 +71,8 @@ def create_placeholder_user import_type: import_type, source_hostname: source_hostname, source_name: source_name, - source_username: source_username + source_username: source_username, + organization: namespace.organization ).execute end diff --git a/spec/lib/gitlab/import/placeholder_user_creator_spec.rb b/spec/lib/gitlab/import/placeholder_user_creator_spec.rb index 03d006d8d1d090b20be46a0b2a1a78e1a9f9275a..4379acb8b374ca74fd536bf7a59e103571fe32dc 100644 --- a/spec/lib/gitlab/import/placeholder_user_creator_spec.rb +++ b/spec/lib/gitlab/import/placeholder_user_creator_spec.rb @@ -4,6 +4,8 @@ RSpec.describe Gitlab::Import::PlaceholderUserCreator, feature_category: :importers do describe '#execute' do + let_it_be(:organization) { create(:organization) } + let(:import_type) { 'github' } let(:source_hostname) { 'github.com' } let(:source_name) { 'Pry Contributor' } @@ -14,7 +16,8 @@ import_type: import_type, source_hostname: source_hostname, source_name: source_name, - source_username: source_username + source_username: source_username, + organization: organization ) end @@ -26,6 +29,7 @@ expect(new_placeholder_user.name).to eq("Placeholder #{source_name}") expect(new_placeholder_user.username).to match(/^aprycontributor_placeholder_user_\d+$/) expect(new_placeholder_user.email).to match(/^aprycontributor_placeholder_user_\d+@#{Settings.gitlab.host}$/) + expect(new_placeholder_user.namespace.organization).to eq(organization) end context 'when there are non-unique usernames on the same import source' do diff --git a/spec/support/helpers/disable_namespace_organization_validation.yml b/spec/support/helpers/disable_namespace_organization_validation.yml index 3761c5aa98785d58c42766759934b17c3b48b8c4..eefcb5d833ecc8daa26ac094e0c65c813bcdd660 100644 --- a/spec/support/helpers/disable_namespace_organization_validation.yml +++ b/spec/support/helpers/disable_namespace_organization_validation.yml @@ -40,7 +40,6 @@ - spec/controllers/registrations_controller_spec.rb - spec/features/admin/admin_groups_spec.rb - spec/features/dashboard/group_spec.rb -- spec/features/file_uploads/group_import_spec.rb - spec/features/groups_spec.rb - spec/frontend/fixtures/groups.rb - spec/graphql/types/project_type_spec.rb @@ -48,8 +47,6 @@ - spec/lib/gitlab/auth/ldap/user_spec.rb - spec/lib/gitlab/auth/o_auth/user_spec.rb - spec/lib/gitlab/auth/saml/user_spec.rb -- spec/lib/gitlab/import/placeholder_user_creator_spec.rb -- spec/lib/gitlab/import/source_user_mapper_spec.rb - spec/models/hooks/system_hook_spec.rb - spec/requests/api/groups_spec.rb - spec/services/users/create_service_spec.rb