module AuthlogicCas::Session::Methods

Public Class Methods

included(klass) click to toggle source
# File lib/authlogic_cas/session.rb, line 10
def self.included(klass)
  klass.class_eval do
    skips = [:persist_by_params,:persist_by_session,:persist_by_http_auth]
    if respond_to? :skip_callback
      skips.each {|cb| skip_callback :persist, cb }
    else
      persist.reject {|cb| skips.include?(cb.method)}
    end
    persist :persist_by_cas, :if => :authenticating_with_cas?
  end
end

Public Instance Methods

authenticating_with_cas?() click to toggle source
# File lib/authlogic_cas/session.rb, line 37
def authenticating_with_cas?
  attempted_record.nil? && errors.empty? && cas_defined?
end
persist_by_cas() click to toggle source

no credentials are passed in: the CAS server takes care of that and saving the session def credentials=(value)

values = [:garbage]
super

end

# File lib/authlogic_cas/session.rb, line 28
def persist_by_cas
  session_key = CASClient::Frameworks::Rails::Filter.client.username_session_key

  unless controller.session[session_key].blank?
    self.attempted_record = search_for_record("find_by_#{klass.login_field}", controller.session[session_key])
  end
  !self.attempted_record.nil?
end

Private Instance Methods

cas_defined?() click to toggle source

todo: validate that cas filters have run. Authlogic controller adapter doesn’t provide access to the filter_chain

# File lib/authlogic_cas/session.rb, line 44
def cas_defined?
  defined?(CASClient::Frameworks::Rails::Filter) && !CASClient::Frameworks::Rails::Filter.config.nil?
end