diff --git a/ee/app/controllers/registrations/groups_controller.rb b/ee/app/controllers/registrations/groups_controller.rb index 92dc16428cd86ef2801cf51cb63b1a91776727ac..fe877eafc4dc7852dabd3f8ba4562e3a7f7e277a 100644 --- a/ee/app/controllers/registrations/groups_controller.rb +++ b/ee/app/controllers/registrations/groups_controller.rb @@ -40,10 +40,9 @@ def create Registrations::StandardNamespaceCreateService end - service_params = params.with_defaults(organization_id: Current.organization_id) - result = Namespace.with_disabled_organization_validation do - service_class.new(current_user, service_params).execute - end + params[:group].with_defaults!(organization_id: Current.organization_id) + + result = service_class.new(current_user, params).execute if result.success? actions_after_success(result.payload) diff --git a/ee/app/services/registrations/standard_namespace_create_service.rb b/ee/app/services/registrations/standard_namespace_create_service.rb index 06ebae6f4fac0f8ee1cff6e00cd28fdcc10ff799..b10ae1bf2f05801ff6311573fc4b167331962e6f 100644 --- a/ee/app/services/registrations/standard_namespace_create_service.rb +++ b/ee/app/services/registrations/standard_namespace_create_service.rb @@ -63,10 +63,7 @@ def project_params_attributes end def create_project_flow - @project = Namespace.with_disabled_organization_validation do - ::Projects::CreateService.new(user, create_project_params).execute - end - + @project = ::Projects::CreateService.new(user, create_project_params).execute if project.persisted? Gitlab::Tracking.event(self.class.name, 'create_project', namespace: project.namespace, user: user) diff --git a/ee/spec/controllers/registrations/groups_controller_spec.rb b/ee/spec/controllers/registrations/groups_controller_spec.rb index 94cb7368e018f08f224c8e5351bc0b82aee19a2f..e75d266992afcb5d09f4865f24556e92b910ef2a 100644 --- a/ee/spec/controllers/registrations/groups_controller_spec.rb +++ b/ee/spec/controllers/registrations/groups_controller_spec.rb @@ -134,7 +134,7 @@ end end - describe 'POST #create' do + describe 'POST #create', :with_current_organization do subject(:post_create) { post :create, params: params } let(:params) { { group: group_params, project: project_params }.merge(extra_params) } @@ -165,6 +165,7 @@ context 'with an authenticated user' do before do sign_in(user) + current_organization.users << user end it_behaves_like 'hides email confirmation warning' diff --git a/ee/spec/services/registrations/import_namespace_create_service_spec.rb b/ee/spec/services/registrations/import_namespace_create_service_spec.rb index c560173e92f3f9ed5908bd4dd262567ba63601af..7524b2945fb57eaf9b7598da0780879b4410cbcd 100644 --- a/ee/spec/services/registrations/import_namespace_create_service_spec.rb +++ b/ee/spec/services/registrations/import_namespace_create_service_spec.rb @@ -8,12 +8,14 @@ describe '#execute' do let_it_be(:user, reload: true) { create(:user) } let_it_be(:group) { create(:group) } + let_it_be(:organization) { create(:organization) } let(:extra_params) { {} } let(:group_params) do { name: 'Group name', path: 'group-path', - visibility_level: Gitlab::VisibilityLevel::PRIVATE.to_s + visibility_level: Gitlab::VisibilityLevel::PRIVATE.to_s, + organization_id: organization.id } end @@ -23,6 +25,7 @@ before_all do group.add_owner(user) + organization.users << user end subject(:execute) { described_class.new(user, params).execute } diff --git a/ee/spec/services/registrations/standard_namespace_create_service_spec.rb b/ee/spec/services/registrations/standard_namespace_create_service_spec.rb index 873065b1366f3d960209daa6f166097ff072bfe4..1f1ee3934beeda6e400523aeb9cfc1bdcadb4cbf 100644 --- a/ee/spec/services/registrations/standard_namespace_create_service_spec.rb +++ b/ee/spec/services/registrations/standard_namespace_create_service_spec.rb @@ -8,12 +8,14 @@ describe '#execute' do let_it_be(:user, reload: true) { create(:user) } let_it_be(:group) { create(:group) } + let_it_be(:organization) { create(:organization) } let(:extra_params) { {} } let(:group_params) do { name: 'Group name', path: 'group-path', - visibility_level: Gitlab::VisibilityLevel::PRIVATE.to_s + visibility_level: Gitlab::VisibilityLevel::PRIVATE.to_s, + organization_id: organization.id } end @@ -33,6 +35,7 @@ before_all do group.add_owner(user) + organization.users << user end subject(:execute) { described_class.new(user, params).execute } diff --git a/spec/support/helpers/disable_namespace_organization_validation.yml b/spec/support/helpers/disable_namespace_organization_validation.yml index ab11f2437c074866e7933289a11920be99ce1fca..914171d896bdc1515afdd0622e31699815e6238b 100644 --- a/spec/support/helpers/disable_namespace_organization_validation.yml +++ b/spec/support/helpers/disable_namespace_organization_validation.yml @@ -4,7 +4,6 @@ - ee/spec/controllers/ee/omniauth_callbacks_controller_spec.rb - ee/spec/controllers/groups/omniauth_callbacks_controller_spec.rb - ee/spec/controllers/ldap/omniauth_callbacks_controller_spec.rb -- ee/spec/controllers/registrations/groups_controller_spec.rb - ee/spec/features/groups_spec.rb - ee/spec/features/projects/settings/merge_requests_settings_spec.rb - ee/spec/features/registrations/combined_registration_spec.rb @@ -35,8 +34,6 @@ - ee/spec/services/users/service_accounts/create_service_spec.rb - ee/spec/services/epics/update_dates_service_spec.rb - ee/spec/services/gitlab_subscriptions/trials/create_service_spec.rb -- ee/spec/services/registrations/import_namespace_create_service_spec.rb -- ee/spec/services/registrations/standard_namespace_create_service_spec.rb - spec/controllers/admin/groups_controller_spec.rb - spec/controllers/admin/users_controller_spec.rb - spec/controllers/groups_controller_spec.rb