Commit 03427738dfa13377bcd02c75f0807a50d6de393f
1 parent
6db55553
Exists in
master
and in
29 other branches
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.
Showing
1 changed file
with
10 additions
and
10 deletions
Show diff stats
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 |