diff options
Diffstat (limited to 'app/models/users_project.rb')
| -rw-r--r-- | app/models/users_project.rb | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/app/models/users_project.rb b/app/models/users_project.rb index f8e0078400f..a8e14675cd7 100644 --- a/app/models/users_project.rb +++ b/app/models/users_project.rb @@ -42,7 +42,21 @@ class UsersProject < ActiveRecord::Base scope :in_project, ->(project) { where(project_id: project.id) } class << self - def add_users_into_projects(project_ids, user_ids, project_access) + + # Add users to project teams with passed access option + # + # access can be an integer representing a access code + # or symbol like :master representing role + # + def add_users_into_projects(project_ids, user_ids, access) + project_access = if @roles.has_key?(access) + @roles[access] + elsif @roles.values.include?(access) + access + else + raise "Non valid access" + end + UsersProject.transaction do project_ids.each do |project_id| user_ids.each do |user_id| @@ -141,6 +155,15 @@ class UsersProject < ActiveRecord::Base add_users_into_projects(project_ids, [user.id], project_access) end + def roles_hash + { + guest: GUEST, + reporter: REPORTER, + developer: DEVELOPER, + master: MASTER + } + end + def access_roles { "Guest" => GUEST, |
