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:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-06-03 17:16:27 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-06-03 17:16:27 +0300
commit53a0ac47344b9b1d93ec36d9e6b41e2394598beb (patch)
tree980b54b212ce8c29f5111a722012f7e6f8484025 /app/services
parent47a95754de18a8f08aa78bf9f20223f263fa8c90 (diff)
Skip repo removing whem remove user or group
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/services')
-rw-r--r--app/services/delete_user_service.rb5
-rw-r--r--app/services/destroy_group_service.rb5
-rw-r--r--app/services/projects/destroy_service.rb8
3 files changed, 11 insertions, 7 deletions
diff --git a/app/services/delete_user_service.rb b/app/services/delete_user_service.rb
index ca350eb2a8d..9017a63af3b 100644
--- a/app/services/delete_user_service.rb
+++ b/app/services/delete_user_service.rb
@@ -4,9 +4,10 @@ class DeleteUserService
user.errors[:base] << 'You must transfer ownership or delete groups before you can remove user'
user
else
- # TODO: Skip remove repository so Namespace#rm_dir works
user.personal_projects.each do |project|
- ::Projects::DestroyService.new(project, current_user, {}).execute
+ # Skip repository removal because we remove directory with namespace
+ # that contain all this repositories
+ ::Projects::DestroyService.new(project, current_user, skip_repo: true).execute
end
user.destroy
diff --git a/app/services/destroy_group_service.rb b/app/services/destroy_group_service.rb
index c1add7b92e8..d929a676293 100644
--- a/app/services/destroy_group_service.rb
+++ b/app/services/destroy_group_service.rb
@@ -6,9 +6,10 @@ class DestroyGroupService
end
def execute
- # TODO: Skip remove repository so Namespace#rm_dir works
@group.projects.each do |project|
- ::Projects::DestroyService.new(project, current_user, {}).execute
+ # Skip repository removal because we remove directory with namespace
+ # that contain all this repositories
+ ::Projects::DestroyService.new(project, current_user, skip_repo: true).execute
end
@group.destroy
diff --git a/app/services/projects/destroy_service.rb b/app/services/projects/destroy_service.rb
index 29e8ba347d4..403f419ec50 100644
--- a/app/services/projects/destroy_service.rb
+++ b/app/services/projects/destroy_service.rb
@@ -36,9 +36,11 @@ module Projects
private
def remove_repository(path)
- unless gitlab_shell.exists?(path + '.git')
- return true
- end
+ # Skip repository removal. We use this flag when remove user or group
+ return true if params[:skip_repo] == true
+
+ # There is a possibility project does not have repository or wiki
+ return true unless gitlab_shell.exists?(path + '.git')
new_path = removal_path(path)