gitlabhq/app/roles/team.rb

55 lines
1.4 KiB
Ruby
Raw Normal View History

module Team
def team_member_by_name_or_email(name = nil, email = nil)
user = users.where("name like ? or email like ?", name, email).first
users_projects.where(user: user) if user
end
2012-07-31 07:32:49 +02:00
# Get Team Member record by user id
def team_member_by_id(user_id)
users_projects.find_by_user_id(user_id)
end
2012-07-31 07:32:49 +02:00
# Add user to project
# with passed access role
def add_user_to_team(user, access_role)
add_user_id_to_team(user.id, access_role)
end
# Add multiple users to project
# with same access role
def add_users_to_team(users, access_role)
add_users_ids_to_team(users.map(&:id), access_role)
end
# Add user to project
# with passed access role by user id
def add_user_id_to_team(user_id, access_role)
users_projects.create(
user_id: user_id,
project_access: access_role
2012-07-31 07:32:49 +02:00
)
end
# Add multiple users to project
# with same access role by user ids
def add_users_ids_to_team(users_ids, access_role)
UsersProject.bulk_import(self, users_ids, access_role)
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)
end
# Delete multiple users from project by user ids
2012-09-08 11:37:23 +02:00
def delete_users_ids_from_team(users_ids)
UsersProject.bulk_delete(self, users_ids)
end
2012-12-30 13:26:19 +01:00
# Remove all users from project team
def truncate_team
2012-12-30 13:26:19 +01:00
UsersProject.truncate_team(self)
end
end