From a8ddbecdfe838ee61a4c61175a16cf695d287846 Mon Sep 17 00:00:00 2001 From: Rutger Wessels Date: Thu, 25 Jul 2024 17:23:38 +0200 Subject: [PATCH] Use namespace organizatino for Placeholder User namespace --- lib/gitlab/import/placeholder_user_creator.rb | 12 ++++++------ lib/gitlab/import/source_user_mapper.rb | 3 ++- .../gitlab/import/placeholder_user_creator_spec.rb | 6 +++++- .../disable_namespace_organization_validation.yml | 3 --- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/gitlab/import/placeholder_user_creator.rb b/lib/gitlab/import/placeholder_user_creator.rb index 6ff5396eaaab12..ad62865fec75e2 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 dc23f890ce809a..ea39cbb6486e19 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 03d006d8d1d090..4379acb8b374ca 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 3761c5aa98785d..eefcb5d833ecc8 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 -- GitLab