Sha256: 14b00b3010d4f480f26922b142624433be32459b618f0527f04dcc303fc7fa79

Contents?: true

Size: 692 Bytes

Versions: 6

Compression:

Stored size: 692 Bytes

Contents

# encoding: UTF-8

require 'rack'

module Spontaneous::Rack
  module Authentication

    def requires_authentication!(options = {})
      first_level_exceptions = (options[:except_all] || []).concat(["#{NAMESPACE}/login", "#{NAMESPACE}/reauthenticate"] )
      second_level_exceptions = (options[:except_key] || [])
      before {
        unless first_level_exceptions.any? { |e| e === request.path }
          ignore_key = second_level_exceptions.any? { |e| e === request.path }
          valid_key = ignore_key || Spontaneous::Permissions::AccessKey.valid?(params[KEY_PARAM], user)
          show_login_page( :login => '' ) unless (user and valid_key)
        end
      }
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
spontaneous-0.2.0.beta1 lib/spontaneous/rack/authentication.rb
spontaneous-0.2.0.alpha7 lib/spontaneous/rack/authentication.rb
spontaneous-0.2.0.alpha6 lib/spontaneous/rack/authentication.rb
spontaneous-0.2.0.alpha5 lib/spontaneous/rack/authentication.rb
spontaneous-0.2.0.alpha4 lib/spontaneous/rack/authentication.rb
spontaneous-0.2.0.alpha3 lib/spontaneous/rack/authentication.rb