diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-06-03 17:16:27 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-06-03 17:16:27 +0300 |
commit | 53a0ac47344b9b1d93ec36d9e6b41e2394598beb (patch) | |
tree | 980b54b212ce8c29f5111a722012f7e6f8484025 /app/services | |
parent | 47a95754de18a8f08aa78bf9f20223f263fa8c90 (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.rb | 5 | ||||
-rw-r--r-- | app/services/destroy_group_service.rb | 5 | ||||
-rw-r--r-- | app/services/projects/destroy_service.rb | 8 |
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) |