Sha256: 3d2b55ac4c5169cdb0aca41bb23ec67645d72ce18e1db6ab568ea199127cacf8

Contents?: true

Size: 843 Bytes

Versions: 6

Compression:

Stored size: 843 Bytes

Contents

require 'rack/utils'

module Padrino
  module Admin
    module Middleware
      ##
      # FlashMiddleware help you passing your session in the URI, when it should be in the cookie.
      # 
      # This code it's only performed when:
      # 
      #   env['HTTP_USER_AGENT'] =~ /^(Adobe|Shockwave) Flash/
      # 
      class FlashMiddleware
        def initialize(app, session_key = 'session_id')
          @app = app
          @session_key = session_key.to_s
        end

        def call(env)
          if env['HTTP_USER_AGENT'] =~ /^(Adobe|Shockwave) Flash/
            params = ::Rack::Request.new(env).params
            env['rack.session'] ||= {}
            env['rack.session'][@session_key.to_sym] = params[@session_key] if params[@session_key].present?
          end
          @app.call(env)
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
padrino-admin-0.9.1 lib/padrino-admin/middleware/flash_middleware.rb
padrino-admin-0.9.0 lib/padrino-admin/middleware/flash_middleware.rb
padrino-admin-0.8.5 lib/padrino-admin/middleware/flash_middleware.rb
padrino-admin-0.8.4 lib/padrino-admin/middleware/flash_middleware.rb
padrino-admin-0.8.3 lib/padrino-admin/middleware/flash_middleware.rb
padrino-admin-0.8.2 lib/padrino-admin/middleware/flash_middleware.rb