summaryrefslogtreecommitdiff
path: root/app/models/users_project.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/users_project.rb')
-rw-r--r--app/models/users_project.rb25
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,