|
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
|
|
|
remove_column :roles, :can_create_rooms |
|
25
|
|
|
remove_column :roles, :send_promoted_email |
|
26
|
|
|
remove_column :roles, :send_demoted_email |
|
27
|
|
|
remove_column :roles, :can_edit_site_settings |
|
28
|
|
|
remove_column :roles, :can_edit_roles |
|
29
|
|
|
remove_column :roles, :can_manage_users |
|
30
|
|
|
end |
|
31
|
|
|
end |
|
32
|
|
|
|