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 class AddInviteMembersPermissionToAdmins < ActiveRecord::Migration 1 class AddInviteMembersPermissionToAdmins < ActiveRecord::Migration
2 def self.up 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 end 8 end
9 9
10 def self.down 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 end 16 end
17 end 17 end