Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Mazetto <brodock@gmail.com>2018-08-24 01:52:35 +0300
committerGabriel Mazetto <brodock@gmail.com>2018-08-26 11:58:43 +0300
commit2e719bda0aec3970bcda06a21aa1e5eb41db323b (patch)
tree5fe03b2871724bfb6f80d5147ef914e580656654 /app/services/groups
parenta32a410fb9bfcd378840b61426a54fd56d2ebd33 (diff)
don't trigger project deletion hooks twice when removing a group
Diffstat (limited to 'app/services/groups')
-rw-r--r--app/services/groups/destroy_service.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/app/services/groups/destroy_service.rb b/app/services/groups/destroy_service.rb
index 12aeba4af71..93d84bd8a9c 100644
--- a/app/services/groups/destroy_service.rb
+++ b/app/services/groups/destroy_service.rb
@@ -12,12 +12,15 @@ module Groups
def execute
group.prepare_for_destroy
- group.projects.each do |project|
+ group.projects.includes(:project_feature).each do |project|
# Execute the destruction of the models immediately to ensure atomic cleanup.
success = ::Projects::DestroyService.new(project, current_user).execute
raise DestroyError, "Project #{project.id} can't be deleted" unless success
end
+ # reload the relation to prevent triggering destroy hooks on the projects again
+ group.projects.reload
+
group.children.each do |group|
# This needs to be synchronous since the namespace gets destroyed below
DestroyService.new(group, current_user).execute