Sha256: 843a33aed6de2b412ddc11c34e9264432210a806036ecf4ba9164d78a36ee35c

Contents?: true

Size: 753 Bytes

Versions: 23

Compression:

Stored size: 753 Bytes

Contents

module Challah
  # Allows authentication with an api_key URL parameter.
  class ApiKeyTechnique

    attr_accessor :user_model

    def initialize(session)
      @key        = session.key? ? session.key : nil
    end

    def authenticate
      # Api key functionality is only enabled with the :api_key_enabled option. This is turned
      # off by default and must be manually enabled for security reasons.
      return nil unless Challah.options[:api_key_enabled]

      unless @key.to_s.blank?
        user = user_model.find_by_api_key(@key)

        if user and user.active?
          return user
        end
      end

      nil
    end

    def persist?
      false
    end

    def user_model
      @user_model ||= Challah.user
    end

  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
challah-1.4.2 lib/challah/techniques/api_key_technique.rb
challah-1.4.1 lib/challah/techniques/api_key_technique.rb
challah-1.4.0 lib/challah/techniques/api_key_technique.rb
challah-1.3.3 lib/challah/techniques/api_key_technique.rb
challah-1.3.2 lib/challah/techniques/api_key_technique.rb
challah-1.3.1 lib/challah/techniques/api_key_technique.rb
challah-1.3.0 lib/challah/techniques/api_key_technique.rb
challah-1.2.11 lib/challah/techniques/api_key_technique.rb
challah-1.2.10 lib/challah/techniques/api_key_technique.rb
challah-1.2.9 lib/challah/techniques/api_key_technique.rb
challah-1.2.8 lib/challah/techniques/api_key_technique.rb
challah-1.2.7 lib/challah/techniques/api_key_technique.rb
challah-1.2.6 lib/challah/techniques/api_key_technique.rb
challah-1.2.5 lib/challah/techniques/api_key_technique.rb
challah-1.2.5.pre lib/challah/techniques/api_key_technique.rb
challah-1.2.4 lib/challah/techniques/api_key_technique.rb
challah-1.2.3 lib/challah/techniques/api_key_technique.rb
challah-1.2.2 lib/challah/techniques/api_key_technique.rb
challah-1.2.1 lib/challah/techniques/api_key_technique.rb
challah-1.2.0 lib/challah/techniques/api_key_technique.rb