Class: SecureSession

Inherits:
Object
  • Object
show all
Defined in:
lib/secure_session.rb

Overview

session that is not stored in cookie, expires after 1.hour unconditionally

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(prefix) ⇒ SecureSession

Returns a new instance of SecureSession.



5
6
7
# File 'lib/secure_session.rb', line 5

def initialize(prefix)
  @prefix = prefix
end

Class Method Details

.expiryObject



9
10
11
# File 'lib/secure_session.rb', line 9

def self.expiry
  @expiry ||= 1.hour.to_i
end

.expiry=(val) ⇒ Object



13
14
15
# File 'lib/secure_session.rb', line 13

def self.expiry=(val)
  @expiry = val
end

Instance Method Details

#[](key) ⇒ Object



27
28
29
# File 'lib/secure_session.rb', line 27

def [](key)
  Discourse.redis.get(prefixed_key(key))
end

#[]=(key, val) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/secure_session.rb', line 31

def []=(key, val)
  if val == nil
    Discourse.redis.del(prefixed_key(key))
  else
    Discourse.redis.setex(prefixed_key(key), SecureSession.expiry.to_i, val.to_s)
  end
  val
end

#set(key, val, expires: nil) ⇒ Object



17
18
19
20
21
# File 'lib/secure_session.rb', line 17

def set(key, val, expires: nil)
  expires ||= SecureSession.expiry
  Discourse.redis.setex(prefixed_key(key), expires.to_i, val.to_s)
  true
end

#ttl(key) ⇒ Object



23
24
25
# File 'lib/secure_session.rb', line 23

def ttl(key)
  Discourse.redis.ttl(prefixed_key(key))
end