Sha256: 2fc8f0733f94df4dbd13732644e68e1378295b913a5caef22ed4b4eee72f4305

Contents?: true

Size: 820 Bytes

Versions: 19

Compression:

Stored size: 820 Bytes

Contents

# frozen_string_literal: true

module Hyrax
  ##
  # A `CanCan::ModelAdapter` for valkyrie resources
  class ValkyrieCanCanAdapter < CanCan::ModelAdapters::AbstractAdapter
    ##
    # @param [Class] member_class
    def self.for_class?(member_class)
      member_class == Hyrax::Resource ||
        member_class < Hyrax::Resource
    end

    ##
    # @param [Class] model_class
    # @param [String] id
    #
    # @return [Hyrax::Resource]
    #
    # @raise Hyrax::ObjectNotFoundError
    def self.find(_model_class, id)
      return Hyrax.query_service.find_by(id: id) unless Hyrax.config.enable_noids?
      Hyrax.query_service.find_by_alternate_identifier(alternate_identifier: id)
    rescue Valkyrie::Persistence::ObjectNotFoundError => err
      raise Hyrax::ObjectNotFoundError, err.message
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
hyrax-5.0.1 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-5.0.0 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-5.0.0.rc3 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-5.0.0.rc2 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-5.0.0.rc1 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-3.6.0 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-4.0.0 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-4.0.0.rc3 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-4.0.0.rc2 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-4.0.0.rc1 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-3.5.0 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-4.0.0.beta2 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-3.4.2 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-4.0.0.beta1 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-3.4.1 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-3.4.0 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-3.3.0 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-3.2.0 lib/hyrax/valkyrie_can_can_adapter.rb
hyrax-3.1.0 lib/hyrax/valkyrie_can_can_adapter.rb