class Trestle::Auth::Backends::Basic

Attributes

user[R]

Returns the current logged in user (after authentication).

Public Instance Methods

authenticate() click to toggle source

Authenticates a user from the session or cookie. Called on each request via a before_action.

# File lib/trestle/auth/backends/basic.rb, line 20
def authenticate
  @user = find_authenticated_user || find_remembered_user
end
authenticate!() click to toggle source

Authenticates a user from a login form request.

# File lib/trestle/auth/backends/basic.rb, line 9
def authenticate!
  params = login_params

  if user = Trestle.config.auth.authenticate(params)
    login!(user)
    remember_me! if Trestle.config.auth.remember.enabled && params[:remember_me]
    user
  end
end
logged_in?() click to toggle source

Checks if there is a logged in user.

# File lib/trestle/auth/backends/basic.rb, line 25
def logged_in?
  !!user
end
login!(user) click to toggle source

Stores the given user in the session as logged in.

# File lib/trestle/auth/backends/basic.rb, line 30
def login!(user)
  session[:trestle_user] = user.id
  @user = user
end
logout!() click to toggle source

Logs out the current user.

# File lib/trestle/auth/backends/basic.rb, line 36
def logout!
  if logged_in? && Trestle.config.auth.remember.enabled
    Trestle.config.auth.remember.forget_me(user)
    cookies.delete(:trestle_remember_token)
  end

  session.delete(:trestle_user)
  @user = nil
end

Protected Instance Methods

find_authenticated_user() click to toggle source
# File lib/trestle/auth/backends/basic.rb, line 52
def find_authenticated_user
  Trestle.config.auth.find_user(session[:trestle_user]) if session[:trestle_user]
end
find_remembered_user() click to toggle source
# File lib/trestle/auth/backends/basic.rb, line 56
def find_remembered_user
  return unless Trestle.config.auth.remember.enabled

  if token = cookies.signed[:trestle_remember_token]
    user = Trestle.config.auth.remember.authenticate(token)
    login!(user) if user
    user
  end
end
login_params() click to toggle source
# File lib/trestle/auth/backends/basic.rb, line 66
def login_params
  controller.params.require(:user).permit!
end
remember_me!() click to toggle source
# File lib/trestle/auth/backends/basic.rb, line 47
def remember_me!
  Trestle.config.auth.remember.remember_me(user)
  cookies.signed[:trestle_remember_token] = Trestle.config.auth.remember.cookie(user)
end