Sha256: 8567d6c1593de39577031a3fd3bfdd300a785e0d87f6f238b02d72b118f25df0

Contents?: true

Size: 1003 Bytes

Versions: 1

Compression:

Stored size: 1003 Bytes

Contents

require "authentication/version"

module Authentication

  class Unauthenticated < StandardError; end

  # Log in with given object.
  #
  # @param [Object] user The object you want to store as `current_user`.
  def login!(user)
    raise Unauthenticated unless user
    @current_user = user
    session[:current_user_id] = user.id
  end

  # Return current_user.
  # If it does not exist, returns nil.
  #
  # @return [Object] The object stored as user or nil
  def current_user
    @current_user ||= find_current_user
  end

  # Return id of given current_user.
  # If it does not exist, returns nil.
  #
  # @return [Object] The id of object stored as user or nil
  def current_user_id
    session[:current_user_id]
  end

  # Return current_user exists or not.
  #
  # @return [Boolean]
  def logged_in?
    not current_user.nil?
  end

  # Delete current_user from database and session.
  #
  def logout!
    return unless current_user
    @current_user = session[:current_user_id] = nil
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
authentication-0.0.1 lib/authentication.rb