Module: RememberMe::Controller

Defined in:
lib/remember_me/controller.rb

Instance Method Summary collapse

Instance Method Details



3
4
5
# File 'lib/remember_me/controller.rb', line 3

def cookie_values
  Rails.configuration.session_options.slice(:path, :domain, :secure)
end


34
35
36
# File 'lib/remember_me/controller.rb', line 34

def forget_cookie_values(resource)
  cookie_values.merge!(resource.rememberable_options)
end

#forget_me(resource) ⇒ Object



20
21
22
23
# File 'lib/remember_me/controller.rb', line 20

def forget_me(resource)
  resource.forget_me!
  cookies.delete remember_key(scope_of resource), forget_cookie_values(resource)
end

#remember(scope) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/remember_me/controller.rb', line 43

def remember(scope)
  cookie = cookies.signed[remember_key(scope)]
  resource = cookie ?
    "#{scope.classify}".constantize.serialize_from_cookie(*cookie) : nil
  if block_given?
    yield resource
  else
    resource
  end
rescue
  # see: https://github.com/linyows/remember_me/pull/1
  # `Moped` NameError occured when upgrade mongoid v4 to v5
  nil
end


25
26
27
28
29
30
31
32
# File 'lib/remember_me/controller.rb', line 25

def remember_cookie_values(resource)
  options = { httponly: true }
  options.merge!(forget_cookie_values(resource))
  options.merge!(
    value: resource.class.serialize_into_cookie(resource),
    expires: resource.remember_expires_at
  )
end

#remember_key(scope) ⇒ Object



38
39
40
41
# File 'lib/remember_me/controller.rb', line 38

def remember_key(scope)
  # remember_token_for_user
  :"_rtf#{scope}"
end

#remember_me(resource) ⇒ Object



15
16
17
18
# File 'lib/remember_me/controller.rb', line 15

def remember_me(resource)
  resource.remember_me!
  cookies.signed[remember_key(scope_of resource)] = remember_cookie_values(resource)
end

#remember_me?Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/remember_me/controller.rb', line 7

def remember_me?
  params.has_key?(:remember_me) && params[:remember_me]
end

#scope_of(resource) ⇒ Object



11
12
13
# File 'lib/remember_me/controller.rb', line 11

def scope_of(resource)
  resource.class.to_s.underscore
end