module Authlogic::ActsAsAuthentic::SessionMaintenance::Methods
Public Class Methods
included(klass)
click to toggle source
# File lib/authlogic/acts_as_authentic/session_maintenance.rb, line 63 def self.included(klass) klass.class_eval do before_save :get_session_information, :if => :update_sessions? before_save :maintain_sessions, :if => :update_sessions? end end
Public Instance Methods
save_without_session_maintenance(*args)
click to toggle source
Save the record and skip session maintenance all together.
# File lib/authlogic/acts_as_authentic/session_maintenance.rb, line 71 def save_without_session_maintenance(*args) self.skip_session_maintenance = true result = save(*args) self.skip_session_maintenance = false result end
Private Instance Methods
create_session()
click to toggle source
# File lib/authlogic/acts_as_authentic/session_maintenance.rb, line 109 def create_session # We only want to automatically login into the first session, since this is the main session. The other sessions are sessions # that need to be created after logging into the main session. session_id = session_ids.first session_class.create(*[self, self, session_id].compact) return true end
get_session_information()
click to toggle source
# File lib/authlogic/acts_as_authentic/session_maintenance.rb, line 91 def get_session_information # Need to determine if we are completely logged out, or logged in as another user @_sessions = [] session_ids.each do |session_id| session = session_class.find(session_id, self) @_sessions << session if session && session.record end end
maintain_sessions()
click to toggle source
# File lib/authlogic/acts_as_authentic/session_maintenance.rb, line 101 def maintain_sessions if @_sessions.empty? create_session else update_sessions end end
session_class()
click to toggle source
# File lib/authlogic/acts_as_authentic/session_maintenance.rb, line 133 def session_class self.class.session_class end
session_ids()
click to toggle source
# File lib/authlogic/acts_as_authentic/session_maintenance.rb, line 129 def session_ids self.class.session_ids end
skip_session_maintenance()
click to toggle source
# File lib/authlogic/acts_as_authentic/session_maintenance.rb, line 83 def skip_session_maintenance @skip_session_maintenance ||= false end
skip_session_maintenance=(value)
click to toggle source
# File lib/authlogic/acts_as_authentic/session_maintenance.rb, line 79 def skip_session_maintenance=(value) @skip_session_maintenance = value end
update_sessions()
click to toggle source
# File lib/authlogic/acts_as_authentic/session_maintenance.rb, line 118 def update_sessions # We found sessions above, let's update them with the new info @_sessions.each do |stale_session| next if stale_session.record != self stale_session.unauthorized_record = self stale_session.save end return true end
update_sessions?()
click to toggle source
# File lib/authlogic/acts_as_authentic/session_maintenance.rb, line 87 def update_sessions? !skip_session_maintenance && session_class && session_class.activated? && self.class.maintain_sessions == true && !session_ids.blank? && persistence_token_changed? end