Commit 03427738dfa13377bcd02c75f0807a50d6de393f

Authored by Antonio Terceiro
1 parent 6db55553

Properly migrating permission data

For some reason, the permissions attribute was not being serialized and I
was getting a "cannot convert Array into String" error.
db/migrate/082_add_invite_members_permission_to_admins.rb
1 1 class AddInviteMembersPermissionToAdmins < ActiveRecord::Migration
2 2 def self.up
3   - Environment.all.each{ |env|
4   - admin = Profile::Roles.admin(env.id)
5   - admin.permissions += ['invite_members']
6   - admin.save!
7   - }
  3 + select_all("SELECT * from roles where key = 'profile_admin'").each do |role|
  4 + permissions = (YAML.load(role['permissions']) + ['invite_members']).to_yaml
  5 + role_id = role['id']
  6 + update("update roles set permissions = '%s' where id = %d" % [permissions, role_id])
  7 + end
8 8 end
9 9  
10 10 def self.down
11   - Environment.all.each{ |env|
12   - admin = Profile::Roles.admin(env.id)
13   - admin.permissions -= ['invite_members']
14   - admin.save!
15   - }
  11 + select_all("SELECT * from roles where key = 'profile_admin'").each do |role|
  12 + permissions = (YAML.load(role['permissions']) - ['invite_members']).to_yaml
  13 + role_id = role['id']
  14 + update("update roles set permissions = '%s' where id = %d" % [permissions, role_id])
  15 + end
16 16 end
17 17 end
... ...