Class: Clearance::Session

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

Constant Summary collapse

'remember_token'.freeze

Instance Method Summary collapse

Constructor Details

#initialize(env) ⇒ Session

Returns a new instance of Session.



7
8
9
# File 'lib/clearance/session.rb', line 7

def initialize(env)
  @env = env
end

Instance Method Details



11
12
13
# File 'lib/clearance/session.rb', line 11

def add_cookie_to_headers(headers)
  Rack::Utils.set_cookie_header!(headers, REMEMBER_TOKEN_COOKIE, cookie_value)
end

#current_userObject



15
16
17
18
19
20
21
# File 'lib/clearance/session.rb', line 15

def current_user
  if remember_token.present?
    @current_user ||= user_from_remember_token(remember_token)
  end

  @current_user
end

#sign_in(user, &block) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/clearance/session.rb', line 23

def (user, &block)
  @current_user = user
  status = 

  if status.success?
    cookies[REMEMBER_TOKEN_COOKIE] = user && user.remember_token
  else
    @current_user = nil
  end

  if block_given?
    block.call(status)
  end
end

#sign_outObject



38
39
40
41
42
43
44
45
# File 'lib/clearance/session.rb', line 38

def sign_out
  if signed_in?
    current_user.reset_remember_token!
  end

  @current_user = nil
  cookies.delete REMEMBER_TOKEN_COOKIE
end

#signed_in?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/clearance/session.rb', line 47

def signed_in?
  current_user.present?
end

#signed_out?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/clearance/session.rb', line 51

def signed_out?
  ! signed_in?
end