lib/rails_warden.rb in hassox-rails_warden-0.2.2 vs lib/rails_warden.rb in hassox-rails_warden-0.2.3
- old
+ new
@@ -1,44 +1,64 @@
-here = File.dirname(__FILE__)
-
-require 'rubygems'
+# encoding: utf-8
require 'warden'
require 'active_support'
-require "#{here}/rails_warden/manager"
-require "#{here}/rails_warden/rails_settings"
-require "#{here}/rails_warden/controller_mixin"
+$:.unshift File.expand_path(File.dirname(__FILE__))
+require "rails_warden/manager"
+require "rails_warden/rails_settings"
+require "rails_warden/controller_mixin"
+
+module Warden::Mixins::Common
+ # Gets the rails request object by default if it's available
+ def request
+ return @request if @request
+ if env['action_controller.rescue.request']
+ @request = env['action_controller.rescue.request']
+ else
+ Rack::Request.new(env)
+ end
+ end
+
+ def raw_session
+ request.session
+ end
+
+ def reset_session!
+ raw_session.inspect # why do I have to inspect it to get it to clear?
+ raw_session.clear
+ end
+end
+
Warden::Manager.before_failure do |env, opts|
- request = env["action_controller.rescue.request"]
- request.params["action"] = RailsWarden.unauthenticated_action || "unauthenticated"
+ env['warden'].request.params['action'] = RailsWarden.unauthenticated_action || "unauthenticated"
end
if defined?(Rails)
Rails.configuration.after_initialize do
class ActionController::Base
include RailsWarden::Mixins::HelperMethods
include RailsWarden::Mixins::ControllerOnlyMethods
end
-
+
module ApplicationHelper
include RailsWarden::Mixins::HelperMethods
end
end
end
-# Session Serialization in. This block determines how the user will
-# be stored in the session. If you're using a complex object like an
+# Session Serialization in. This block determines how the user will
+# be stored in the session. If you're using a complex object like an
# ActiveRecord model, it is not a good idea to store the complete object.
# An ID is sufficient
-Warden::Manager.serialize_into_session{ |user| [user.class, user.id] }
+Warden::Manager.serialize_into_session{ |user| [user.class, user.id] }
# Session Serialization out. This block gets the user out of the session.
# It should be the reverse of serializing the object into the session
-Warden::Manager.serialize_from_session do |klass, id|
+Warden::Manager.serialize_from_session do |klass, id|
klass = case klass
when Class
klass
when String, Symbol
klass.to_s.classify.constantize
end
klass.find(id)
-end
\ No newline at end of file
+end