diff options
author | Douwe Maan <douwe@gitlab.com> | 2018-01-02 15:08:43 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-01-02 15:08:43 +0000 |
commit | 1dac4271798a3b9ad36c3d985a3f7740cd1c60b3 (patch) | |
tree | ffa934d311db4427167d7c11f63a65e929743278 /app/services | |
parent | d632475b300e3130a90fd580fa423614d8fd2604 (diff) | |
parent | 2665aea6275cc82888ed3e3ab3dbe384028d663c (diff) | |
download | gitlab-ce-1dac4271798a3b9ad36c3d985a3f7740cd1c60b3.tar.gz |
Merge branch 'fj-40053-error-500-members-list' into 'master'
Fix user membership destroy relation
Closes #40053
See merge request gitlab-org/gitlab-ce!15970
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/users/destroy_service.rb | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/app/services/users/destroy_service.rb b/app/services/users/destroy_service.rb index 8e20de8dfa5..00db8a2c434 100644 --- a/app/services/users/destroy_service.rb +++ b/app/services/users/destroy_service.rb @@ -31,6 +31,11 @@ module Users return user end + # Calling all before/after_destroy hooks for the user because + # there is no dependent: destroy in the relationship. And the removal + # is done by a foreign_key. Otherwise they won't be called + user.members.find_each { |member| member.run_callbacks(:destroy) } + user.solo_owned_groups.each do |group| Groups::DestroyService.new(group, current_user).execute end |