module RackCAS::MongoidStore
Public Class Methods
destroy_session_by_cas_ticket(cas_ticket)
click to toggle source
# File lib/rack-cas/session_store/mongoid.rb, line 18 def self.destroy_session_by_cas_ticket(cas_ticket) affected = Session.where(cas_ticket: cas_ticket).delete affected == 1 end
prune(after = nil)
click to toggle source
# File lib/rack-cas/session_store/mongoid.rb, line 23 def self.prune(after = nil) after ||= Time.now - 2592000 # 30 days ago Session.where(:updated_at.lte => after).delete end
Private Instance Methods
delete_session(env, sid, options)
click to toggle source
Rack
2.0 method
# File lib/rack-cas/session_store/mongoid.rb, line 58 def delete_session(env, sid, options) Session.where(_id: sid).delete options[:drop] ? nil : generate_sid end
destroy_session(env, sid, options)
click to toggle source
Rack
1.* method
# File lib/rack-cas/session_store/mongoid.rb, line 73 def destroy_session(env, sid, options) # rack 1.x compatibilty delete_session(Rack::Request.new(env), sid, options) end
find_session(env, sid)
click to toggle source
Rack
2.0 method
# File lib/rack-cas/session_store/mongoid.rb, line 31 def find_session(env, sid) if sid.nil? sid = generate_sid data = nil else unless session = Session.where(_id: sid).first session = {} # force generation of new sid since there is no associated session sid = generate_sid end data = unpack(session['data']) end [sid, data] end
Also aliased as: get_session
pack(data)
click to toggle source
# File lib/rack-cas/session_store/mongoid.rb, line 77 def pack(data) if defined? Moped::BSON Moped::BSON::Binary.new(:generic, Marshal.dump(data)) else BSON::Binary.new(Marshal.dump(data)) end end
set_session(env, sid, session_data, options)
click to toggle source
Rack
1.* method
# File lib/rack-cas/session_store/mongoid.rb, line 68 def set_session(env, sid, session_data, options) # rack 1.x compatibilty write_session(Rack::Request.new(env), sid, session_data, options) end
unpack(packed)
click to toggle source
# File lib/rack-cas/session_store/mongoid.rb, line 85 def unpack(packed) return nil unless packed if defined? Moped::BSON Marshal.load(StringIO.new(packed.to_s)) else Marshal.load(packed.data) end end
write_session(env, sid, session_data, options)
click to toggle source
Rack
2.0 method
# File lib/rack-cas/session_store/mongoid.rb, line 48 def write_session(env, sid, session_data, options) cas_ticket = (session_data['cas']['ticket'] unless session_data['cas'].nil?) session = Session.find_or_initialize_by(_id: sid) success = session.update_attributes(data: pack(session_data), cas_ticket: cas_ticket) success ? session.id : false end