discourse/db/migrate/20161013012136_add_scopes_to_user_api_keys.rb
Sam f4f5524190 FEATURE: user API now contains scopes so permission is granular
previously we supported blanket read and write for user API, this
change amends it so we can define more limited scopes. A scope only
covers a few routes. You can not grant access to part of the site and
leave a large amount of the information hidden to API consumer.
2016-10-14 16:05:42 +11:00

14 lines
537 B
Ruby

class AddScopesToUserApiKeys < ActiveRecord::Migration
def change
add_column :user_api_keys, :scopes, :text, array: true, null: false, default: []
execute "UPDATE user_api_keys SET scopes = scopes || ARRAY['write'] WHERE write"
execute "UPDATE user_api_keys SET scopes = scopes || ARRAY['read'] WHERE read"
execute "UPDATE user_api_keys SET scopes = scopes || ARRAY['push'] WHERE push"
remove_column :user_api_keys, :read
remove_column :user_api_keys, :write
remove_column :user_api_keys, :push
end
end