diff options
Diffstat (limited to 'app/models/team.rb')
-rw-r--r-- | app/models/team.rb | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/app/models/team.rb b/app/models/team.rb new file mode 100644 index 00000000000..894361d1273 --- /dev/null +++ b/app/models/team.rb @@ -0,0 +1,49 @@ +class Team + attr_accessor :project + + def initialize(project) + @project = project + @roles = UsersProject.roles_hash + end + + def add_user(user, access) + add_users_ids([user.id], access) + end + + def add_users(users, access) + add_users_ids(users.map(&:id), access) + end + + def add_users_ids(users_ids, access) + UsersProject.add_users_into_projects( + [project.id], + user_ids, + access + ) + end + + # Remove all users from project team + def truncate + UsersProject.truncate_team(project) + end + + def members + project.users_projects + end + + def guests + members.guests.map(&:user) + end + + def reporters + members.reporters.map(&:user) + end + + def developers + members.developers.map(&:user) + end + + def masters + members.masters.map(&:user) + end +end |