REpostiry, Team models

This commit is contained in:
Dmitriy Zaporozhets 2013-01-03 21:09:18 +02:00
parent e6c0673ef1
commit 39ba934c0a
31 changed files with 329 additions and 315 deletions

View file

@ -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,