Module: Authkick::ControllerMethods

Defined in:
lib/authkick.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



7
8
9
10
# File 'lib/authkick.rb', line 7

def self.included(base)
  base.helper_method :current_user
  base.helper_method :signed_in?
end

Instance Method Details

#current_userObject



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/authkick.rb', line 12

def current_user
  @current_user ||= begin
    user = session[:user_id] ? User.find_by(id: session[:user_id]) : nil
    if !user and cookies.encrypted[:user_id]
      user = User.find_by(id: cookies.encrypted[:user_id])
      if user
        reset_session
        session[:user_id] = user.id
      end
    end
    user
  end
end

#sign_in(user, opts = {}) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/authkick.rb', line 30

def (user, opts = {})
  remember = opts.has_key?(:remember) ? opts[:remember] : 1.year
  reset_session
  session[:user_id] = user.id
  @current_user = user
  cookies.encrypted[:user_id] = {value: "#{user.id}", expires: remember.from_now, httponly: true} if remember
end

#sign_outObject



38
39
40
41
42
# File 'lib/authkick.rb', line 38

def sign_out
  @current_user = nil
  reset_session
  cookies.delete(:user_id)
end

#signed_in?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/authkick.rb', line 26

def signed_in?
  !!current_user
end