forked from External/greenlight
Change permissions from columns to table entries (#762)
This commit is contained in:
committed by
farhatahmad
parent
01b8dbbd0e
commit
666231db6c
31
db/migrate/20190822134205_create_role_permissions.rb
Normal file
31
db/migrate/20190822134205_create_role_permissions.rb
Normal file
@ -0,0 +1,31 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class CreateRolePermissions < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
create_table :role_permissions do |t|
|
||||
t.string :name
|
||||
t.string :value, default: ""
|
||||
t.boolean :enabled, default: false
|
||||
t.references :role, foreign_key: true
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
|
||||
Role.all.each do |role|
|
||||
role.role_permissions.create(name: "can_create_rooms", value: role.can_create_rooms.to_s, enabled: true)
|
||||
role.role_permissions.create(name: "send_promoted_email", value: role.send_promoted_email.to_s, enabled: true)
|
||||
role.role_permissions.create(name: "send_demoted_email", value: role.send_demoted_email.to_s, enabled: true)
|
||||
role.role_permissions.create(name: "can_edit_site_settings", value: role.can_edit_site_settings.to_s,
|
||||
enabled: true)
|
||||
role.role_permissions.create(name: "can_edit_roles", value: role.can_edit_roles.to_s, enabled: true)
|
||||
role.role_permissions.create(name: "can_manage_users", value: role.can_manage_users.to_s, enabled: true)
|
||||
end
|
||||
|
||||
remove_column :roles, :can_create_rooms
|
||||
remove_column :roles, :send_promoted_email
|
||||
remove_column :roles, :send_demoted_email
|
||||
remove_column :roles, :can_edit_site_settings
|
||||
remove_column :roles, :can_edit_roles
|
||||
remove_column :roles, :can_manage_users
|
||||
end
|
||||
end
|
18
db/schema.rb
18
db/schema.rb
@ -10,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 2019_07_26_153012) do
|
||||
ActiveRecord::Schema.define(version: 2019_08_22_134205) do
|
||||
|
||||
create_table "features", force: :cascade do |t|
|
||||
t.integer "setting_id"
|
||||
@ -33,15 +33,19 @@ ActiveRecord::Schema.define(version: 2019_07_26_153012) do
|
||||
t.index ["provider"], name: "index_invitations_on_provider"
|
||||
end
|
||||
|
||||
create_table "role_permissions", force: :cascade do |t|
|
||||
t.string "name"
|
||||
t.string "value", default: ""
|
||||
t.boolean "enabled", default: false
|
||||
t.integer "role_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["role_id"], name: "index_role_permissions_on_role_id"
|
||||
end
|
||||
|
||||
create_table "roles", force: :cascade do |t|
|
||||
t.string "name"
|
||||
t.integer "priority", default: 9999
|
||||
t.boolean "can_create_rooms", default: false
|
||||
t.boolean "send_promoted_email", default: false
|
||||
t.boolean "send_demoted_email", default: false
|
||||
t.boolean "can_edit_site_settings", default: false
|
||||
t.boolean "can_edit_roles", default: false
|
||||
t.boolean "can_manage_users", default: false
|
||||
t.string "colour"
|
||||
t.string "provider"
|
||||
t.datetime "created_at", null: false
|
||||
|
Reference in New Issue
Block a user