2018-05-07 16:47:29 -07:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
2014-08-13 22:48:05 +03:00
|
|
|
class MigrateRolesForCancancan < ActiveRecord::Migration
|
|
|
|
|
def up
|
|
|
|
|
# Store the number of existing roles
|
|
|
|
|
old_roles = Role.count
|
|
|
|
|
|
|
|
|
|
Role.all.each do |role|
|
|
|
|
|
role.users.each do |user|
|
|
|
|
|
Conference.all.each do |conference|
|
2025-08-12 16:44:20 +02:00
|
|
|
if ['Admin', 'Organizer'].include?(role.name)
|
2014-08-13 22:48:05 +03:00
|
|
|
user.add_role :organizer, conference
|
2014-09-04 15:53:47 +03:00
|
|
|
user.update_columns(is_admin: true)
|
2014-08-13 22:48:05 +03:00
|
|
|
else
|
|
|
|
|
user.add_role role.name.parameterize.underscore.to_sym, conference
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# Delete old roles
|
|
|
|
|
Role.first(old_roles).each do |role|
|
|
|
|
|
role.destroy
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def down
|
2014-09-04 15:53:47 +03:00
|
|
|
raise ActiveRecord::IrreversibleMigration.new('Cannot reverse migration.')
|
2014-08-13 22:48:05 +03:00
|
|
|
end
|
|
|
|
|
end
|