Sha256: d4733109f880aff11ba050be6a3729fc213efaa194b7f23000abad77d5f0697e
Contents?: true
Size: 1.15 KB
Versions: 2
Compression:
Stored size: 1.15 KB
Contents
class Galakei::Filter::SessionIdParameter < Galakei::Filter::Base def self.inject(klass) klass.before_filter self end def filter key = ::Rails.application.config.session_options[:key] if device_needs_session_param_in_url? session_opts = env[ActionDispatch::Session::AbstractStore::ENV_SESSION_OPTIONS_KEY] # if we don't have a session ID yet, create one if session_opts[:id].blank? # make sure to reset any active record session store, # we'll have to create a new one for the new session env[ActiveRecord::SessionStore::SESSION_RECORD_KEY] = nil # create a new session ID session_opts[:id] = ActiveSupport::SecureRandom.hex(8) end sid = session_opts[:id] logger.debug("Galakei: adding session param '#{key}' to default_url_options") default_url_options[key] = sid else # default_url_options aren't cleared, so we need to clear them default_url_options.delete(key) end end private def device_needs_session_param_in_url? galakei? && !request.cookies? && session end def default_url_options controller.send :default_url_options end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
galakei-0.3.2 | lib/galakei/filter/session_id_parameter.rb |
galakei-0.3.1 | lib/galakei/filter/session_id_parameter.rb |