Sha256: f2787ec226b4e559faa32d57dfd14e71f87f2c0994e4121f317d6ada7a80276b

Contents?: true

Size: 1.44 KB

Versions: 5

Compression:

Stored size: 1.44 KB

Contents

# Include this module into any of your Controller classes to add Hydra functionality
#
# The primary function of this module is to mix in a number of other Hydra Modules, including 
#   Hydra::AccessControlsEnforcement
#
# @example 
#  class CustomHydraController < ApplicationController  
#    include Hydra::Controller
#  end
#
module Hydra::Controller

  def self.included(klass)
    # Other modules to auto-include
    klass.send(:include, Hydra::AccessControlsEnforcement)
    klass.send(:include, Hydra::RepositoryController)
  
    # View Helpers
    klass.helper :hydra
    klass.helper :hydra_assets
  end
  
  # Use params[:id] to load an object from Fedora.  Inspects the object for known models and mixes in any of those models' behaviors.
  # Sets @document_fedora with the loaded object
  # Sets @file_assets with file objects that are children of the loaded object
  def load_fedora_document
    @document_fedora = ActiveFedora::Base.find(params[:id], :cast=>true)
    unless @document_fedora.class.include?(Hydra::ModelMethods)
      @document_fedora.class.send :include, Hydra::ModelMethods
    end
    
    @file_assets = @document_fedora.parts(:response_format=>:solr)
  end
  
  
  # get the currently configured user identifier.  Can be overridden to return whatever (ie. login, email, etc)
  # defaults to using whatever you have set as the Devise authentication_key
  def user_key
    current_user.send(Devise.authentication_keys.first)
  end
  
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
hydra-head-4.0.0 lib/hydra/controller.rb
hydra-head-4.0.0.rc6 lib/hydra/controller.rb
hydra-head-4.0.0.rc5 lib/hydra/controller.rb
hydra-head-4.0.0.rc4 lib/hydra/controller.rb
hydra-head-4.0.0.rc3 lib/hydra/controller.rb