class RackCAS::RedisStore::Session

Public Class Methods

client() click to toggle source
# File lib/rack-cas/session_store/redis.rb, line 6
def self.client
  @client ||= (RackCAS.config.redis_options? ? Redis.new(RackCAS.config.redis_options) : Redis.new)
  return @client
end
delete(session_id) click to toggle source
# File lib/rack-cas/session_store/redis.rb, line 38
def self.delete(session_id)
  self.client.del("rack_cas_session:#{session_id}")
end
destroy_by_cas_ticket(cas_ticket) click to toggle source
# File lib/rack-cas/session_store/redis.rb, line 29
def self.destroy_by_cas_ticket(cas_ticket)
  session_id = self.client.get("rack_cas_ticket:#{cas_ticket}")
  results = self.client.pipelined do
    self.client.del("rack_cas_ticket:#{cas_ticket}")
    self.client.del(session_id)
  end
  return results[1]
end
find_by_id(session_id) click to toggle source
# File lib/rack-cas/session_store/redis.rb, line 11
def self.find_by_id(session_id)
  session = self.client.get("rack_cas_session:#{session_id}")
  session ? {'sid' => session_id, 'data' => session} : session
end
write(session_id:, data:, cas_ticket: ) click to toggle source
# File lib/rack-cas/session_store/redis.rb, line 16
def self.write(session_id:, data:, cas_ticket: )
  #create a row with the session_id and the data
  #create a row with the cas_ticket acting as a reverse index
  results = self.client.pipelined do
    self.client.set("rack_cas_session:#{session_id}",data)
    self.client.expireat("rack_cas_session:#{session_id}",30.days.from_now.to_i)
    self.client.set("rack_cas_ticket:#{cas_ticket}","rack_cas_session:#{session_id}")
    self.client.expireat("rack_cas_ticket:#{cas_ticket}",30.days.from_now.to_i)
  end

  results == ["OK",true,"OK",true] ? session_id : false
end