diff options
author | miks <miks@cubesystems.lv> | 2012-09-06 23:14:42 +0300 |
---|---|---|
committer | miks <miks@cubesystems.lv> | 2012-09-06 23:14:42 +0300 |
commit | 2dc0519277417456372d6bde5c47bec895cc497e (patch) | |
tree | 96c08b6f68f11802847a5a9342d2f96e457abd1f | |
parent | 3d3c6674fbea1b9099e80e1fc1768f85ecd3bf14 (diff) | |
download | gitlab-ce-2dc0519277417456372d6bde5c47bec895cc497e.tar.gz |
bulk access roles update/deletion added
-rw-r--r-- | app/models/users_project.rb | 17 | ||||
-rw-r--r-- | app/roles/team.rb | 13 |
2 files changed, 30 insertions, 0 deletions
diff --git a/app/models/users_project.rb b/app/models/users_project.rb index 7d1729343bb..654b371154c 100644 --- a/app/models/users_project.rb +++ b/app/models/users_project.rb @@ -20,6 +20,23 @@ class UsersProject < ActiveRecord::Base delegate :name, :email, to: :user, prefix: true + def self.bulk_delete(project, user_ids) + UsersProject.transaction do + UsersProject.where(:user_id => user_ids, :project_id => project.id).each do |users_project| + users_project.delete + end + end + end + + def self.bulk_update(project, user_ids, project_access) + UsersProject.transaction do + UsersProject.where(:user_id => user_ids, :project_id => project.id).each do |users_project| + users_project.project_access = project_access + users_project.save + end + end + end + def self.bulk_import(project, user_ids, project_access) UsersProject.transaction do user_ids.each do |user_id| diff --git a/app/roles/team.rb b/app/roles/team.rb index 27b1cc65897..d8798c507e3 100644 --- a/app/roles/team.rb +++ b/app/roles/team.rb @@ -36,4 +36,17 @@ module Team UsersProject.bulk_import(self, users_ids, access_role) self.update_repository end + + # Update multiple project users + # to same access role by user ids + def update_users_ids_to_role(users_ids, access_role) + UsersProject.bulk_update(self, users_ids, access_role) + self.update_repository + end + + # Delete multiple users from project by user ids + def delete_users_by_ids(users_ids) + UsersProject.bulk_delete(self, users_ids) + self.update_repository + end end |