Sha256: 248af2f85f4352b4202540848f1e601d5588ca5c973a65ddd8970519627789c8

Contents?: true

Size: 1.35 KB

Versions: 26

Compression:

Stored size: 1.35 KB

Contents

# frozen_string_literal: true

module Doorkeeper
  module Models
    module ResourceOwnerable
      extend ActiveSupport::Concern

      module ClassMethods
        # Searches for record by Resource Owner considering Doorkeeper
        # configuration for resource owner association.
        #
        # @param resource_owner [ActiveRecord::Base, Integer]
        #   resource owner
        #
        # @return [Doorkeeper::AccessGrant, Doorkeeper::AccessToken]
        #   collection of records
        #
        def by_resource_owner(resource_owner)
          if Doorkeeper.configuration.polymorphic_resource_owner?
            where(resource_owner: resource_owner)
          else
            where(resource_owner_id: resource_owner_id_for(resource_owner))
          end
        end

        protected

        # Backward compatible way to retrieve resource owner itself (if
        # polymorphic association enabled) or just it's ID.
        #
        # @param resource_owner [ActiveRecord::Base, Integer]
        #   resource owner
        #
        # @return [ActiveRecord::Base, Integer]
        #   instance of Resource Owner or it's ID
        #
        def resource_owner_id_for(resource_owner)
          if resource_owner.respond_to?(:to_key)
            resource_owner.id
          else
            resource_owner
          end
        end
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
doorkeeper-5.8.1 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.8.0 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.7.1 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.7.0 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.9 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.8 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.7 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.6 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.5 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.4 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.3 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.2 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.1 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.0 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.0.rc2 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.6.0.rc1 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.5.4 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.5.3 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.5.2 lib/doorkeeper/models/concerns/resource_ownerable.rb
doorkeeper-5.5.1 lib/doorkeeper/models/concerns/resource_ownerable.rb