Sha256: d1e6372bfc8a1b7fb267db15aeb6a05fee61de21eb09add0faa156ab5cf3031b
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 KB
Contents
class PopulateRoles < ActiveRecord::Migration def up developer_ids = User.where(role: "Developer").pluck(:id) tester_ids = User.where(role: "Tester").pluck(:id) participant_ids = developer_ids + tester_ids Project.find_each do |project| maintainer_ids = users_that_maintain(project) follower_ids = users_that_follow(project) maintainer_ids.each do |user_id| project.add_teammate user_id, "Maintainer" end (developer_ids - maintainer_ids).each do |user_id| project.add_teammate user_id, "Contributor" end tester_ids.each do |user_id| project.add_teammate user_id, "Tester" end (follower_ids - participant_ids).each do |user_id| project.add_teammate user_id, "Follower" end end end def down Role.delete_all end def users_that_follow(project) sql = "SELECT DISTINCT user_id FROM user_notifications WHERE project_id=#{project.id}" User.connection.select_values(sql).map(&:to_i) end def users_that_maintain(project) sql = "SELECT DISTINCT user_id FROM projects_maintainers WHERE project_id=#{project.id}" User.connection.select_values(sql).map(&:to_i) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
houston-core-0.5.0.beta1 | db/migrate/20130407200624_populate_roles.rb |