Commit d075df56d3cfb15a5d11550d86229f5b8001fbe7
1 parent
f45345ed
Exists in
master
and in
4 other branches
Improve perfomance of removeing group
Showing
4 changed files
with
27 additions
and
1 deletions
Show diff stats
app/controllers/admin/groups_controller.rb
app/models/group.rb
app/models/users_project.rb
| ... | ... | @@ -56,6 +56,25 @@ class UsersProject < ActiveRecord::Base |
| 56 | 56 | false |
| 57 | 57 | end |
| 58 | 58 | |
| 59 | + def truncate_teams(project_ids) | |
| 60 | + UsersProject.transaction do | |
| 61 | + users_projects = UsersProject.where(project_id: project_ids) | |
| 62 | + users_projects.each do |users_project| | |
| 63 | + users_project.skip_git = true | |
| 64 | + users_project.destroy | |
| 65 | + end | |
| 66 | + Gitlab::Gitolite.new.update_repositories(Project.where(id: project_ids)) | |
| 67 | + end | |
| 68 | + | |
| 69 | + true | |
| 70 | + rescue | |
| 71 | + false | |
| 72 | + end | |
| 73 | + | |
| 74 | + def truncate_team project | |
| 75 | + truncate_teams [project.id] | |
| 76 | + end | |
| 77 | + | |
| 59 | 78 | def import_team(source_project, target_project) |
| 60 | 79 | source_team = source_project.users_projects.all |
| 61 | 80 | target_team = target_project.users_projects.all | ... | ... |
app/roles/team.rb