1
|
|
|
# frozen_string_literal: true |
2
|
|
|
|
3
|
|
|
class CreateRolePermissions < ActiveRecord::Migration[5.2] |
4
|
|
|
def change |
5
|
|
|
create_table :role_permissions do |t| |
6
|
|
|
t.string :name |
7
|
|
|
t.string :value, default: "" |
8
|
|
|
t.boolean :enabled, default: false |
9
|
|
|
t.references :role, foreign_key: true |
10
|
|
|
|
11
|
|
|
t.timestamps |
12
|
|
|
end |
13
|
|
|
|
14
|
|
|
Role.all.each do |role| |
15
|
|
|
role.role_permissions.create(name: "can_create_rooms", value: role.can_create_rooms.to_s, enabled: true) |
16
|
|
|
role.role_permissions.create(name: "send_promoted_email", value: role.send_promoted_email.to_s, enabled: true) |
17
|
|
|
role.role_permissions.create(name: "send_demoted_email", value: role.send_demoted_email.to_s, enabled: true) |
18
|
|
|
role.role_permissions.create(name: "can_edit_site_settings", value: role.can_edit_site_settings.to_s, |
19
|
|
|
enabled: true) |
20
|
|
|
role.role_permissions.create(name: "can_edit_roles", value: role.can_edit_roles.to_s, enabled: true) |
21
|
|
|
role.role_permissions.create(name: "can_manage_users", value: role.can_manage_users.to_s, enabled: true) |
22
|
|
|
end |
23
|
|
|
|
24
|
|
|
# Add these back in once the change to postgres is made |
25
|
|
|
# remove_column :roles, :can_create_rooms |
26
|
|
|
# remove_column :roles, :send_promoted_email |
27
|
|
|
# remove_column :roles, :send_demoted_email |
28
|
|
|
# remove_column :roles, :can_edit_site_settings |
29
|
|
|
# remove_column :roles, :can_edit_roles |
30
|
|
|
# remove_column :roles, :can_manage_users |
31
|
|
|
end |
32
|
|
|
end |
33
|
|
|
|