module Authkick::ControllerMethods

Public Class Methods

included(base) click to toggle source
# File lib/authkick.rb, line 7
def self.included(base)
  base.helper_method :current_user
  base.helper_method :signed_in?
end

Public Instance Methods

current_user() click to toggle source
# 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 = {}) click to toggle source
# File lib/authkick.rb, line 30
def sign_in(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_out() click to toggle source
# File lib/authkick.rb, line 38
def sign_out
  @current_user = nil
  reset_session
  cookies.delete(:user_id)
end
signed_in?() click to toggle source
# File lib/authkick.rb, line 26
def signed_in?
  !!current_user
end