diff --git a/app/models/concerns/users/dependent_associations.rb b/app/models/concerns/users/dependent_associations.rb index 0aeb034c9b45c1b7a81bbe9e73168698ff282bf6..d5f88af8caf3709835ec9d27704609a2e0ff0bb3 100644 --- a/app/models/concerns/users/dependent_associations.rb +++ b/app/models/concerns/users/dependent_associations.rb @@ -84,6 +84,30 @@ module DependentAssociations has_many :work_item_type_user_preferences, class_name: 'WorkItems::UserPreference', dependent: :destroy + + has_many :packages, + class_name: 'Packages::Package', + foreign_key: :creator_id, + inverse_of: :creator, + dependent: :nullify + + has_many :composer_packages, + class_name: 'Packages::Composer::Package', + foreign_key: :creator_id, + inverse_of: :creator, + dependent: :nullify + + has_many :debian_group_distributions, + class_name: 'Packages::Debian::GroupDistribution', + foreign_key: :creator_id, + inverse_of: :creator, + dependent: :nullify + + has_many :debian_project_distributions, + class_name: 'Packages::Debian::ProjectDistribution', + foreign_key: :creator_id, + inverse_of: :creator, + dependent: :nullify # rubocop:enable Cop/ActiveRecordDependent end end diff --git a/spec/models/concerns/users/dependent_associations_spec.rb b/spec/models/concerns/users/dependent_associations_spec.rb index 783a710c91812c9d14b092a1e17738fe5edfe61a..8fd81ff3ee36e33fd9fc36313075ec258a7d18f5 100644 --- a/spec/models/concerns/users/dependent_associations_spec.rb +++ b/spec/models/concerns/users/dependent_associations_spec.rb @@ -27,7 +27,23 @@ class_name: 'ServiceDesk::CustomEmailVerification', foreign_key: :triggerer_id }, - ssh_signatures: { class_name: 'CommitSignatures::SshSignature' } + ssh_signatures: { class_name: 'CommitSignatures::SshSignature' }, + packages: { + class_name: 'Packages::Package', + foreign_key: :creator_id + }, + composer_packages: { + class_name: 'Packages::Composer::Package', + foreign_key: :creator_id + }, + debian_group_distributions: { + class_name: 'Packages::Debian::GroupDistribution', + foreign_key: :creator_id + }, + debian_project_distributions: { + class_name: 'Packages::Debian::ProjectDistribution', + foreign_key: :creator_id + } } end diff --git a/spec/support/shared_examples/models/user_shared_examples.rb b/spec/support/shared_examples/models/user_shared_examples.rb index 4a51549e825cf1a9d3d7914c721acd089a576bd7..b1baee4e3865041d099fe89cdca49311f1fded74 100644 --- a/spec/support/shared_examples/models/user_shared_examples.rb +++ b/spec/support/shared_examples/models/user_shared_examples.rb @@ -127,10 +127,6 @@ merge_requests_merge_data namespace_uploads organization_detail_uploads - packages_composer_packages - packages_debian_group_distributions - packages_debian_project_distributions - packages_packages project_import_export_relation_export_upload_uploads project_topic_uploads project_uploads