Skip to content

Latest commit

 

History

History
56 lines (38 loc) · 1.73 KB

polymorphic-resource-owner.md

File metadata and controls

56 lines (38 loc) · 1.73 KB

Polymorphic Resource Owner

Enables polymorphic Resource Owner feature for Doorkeeper Access Tokens & Grants. By default Doorkeeper set only resource_owner_id without knowing model name of the Resource Owner.

Feature available only starting from Doorkeeper 5.4.

How to use it

Enable configuration option:

{% code-tabs %} {% code-tabs-item title="config/initializers/doorkeeper.rb" %}

Doorkeeper.configure do
  orm :active_record

  use_polymorphic_resource_owner
end

{% endcode-tabs-item %} {% endcode-tabs %}

Generate migration to add polymorphic columns to tables:

$ bundle exec rails g doorkeeper:enable_polymorphic_resource_owner

If you previously set foreign key for :resource_owner_id column - you need to drop it as now it would be a polymorphic association. You can drop FK in the migration generated above.

Run the migration:

$ bundle exec rails db:migrate

Use the feature!

Now you can access resource owner by doorkeeper_token.resource_owner association.

⚠️ ⚠️ [ATTENTION]: If you enabled this option on existing project - you need to manually set polymorphic type column with the class of the Resource Owner. Otherwise your existing users/clients could face issues and spam you logs with errors.

⚠️ ⚠️ [ATTENTION]: Also this feature could be a breaking change for those users that patched Doorkeeper internals, specially models. You need to fix your patches to user resource_owner instance instead of it's ID (like it was before).

Known projects affected

Original PR: doorkeeper-gem/doorkeeper#1355