module MinimalistAuthentication::Sessions

Attributes

return_to[RW]

URL to redirect to after successful login

Public Instance Methods

create() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 19
def create
  if authenticated_user
    log_in_user
    set_or_verify_email || after_authentication_success
  else
    after_authentication_failure
  end
end
destroy() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 28
def destroy
  reset_session
  redirect_to logout_redirect_to, notice: t(".notice"), status: :see_other
end
new() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 15
def new
  user
end

Private Instance Methods

after_authentication_failure() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 77
def after_authentication_failure
  flash.now.alert = t(".alert", identifier:)
  user
  render :new, status: :unprocessable_entity
end
after_authentication_success() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 68
def after_authentication_success
  redirect_to return_to || login_redirect_to
end
attempting_to_verify?() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 72
def attempting_to_verify?
  # check if user is attempting to verify their email
  session["return_to"].to_s[/token/]
end
authenticated_user() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 39
def authenticated_user
  @authenticated_user ||= MinimalistAuthentication::Authenticator.authenticate(user_params)
end
identifier() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 83
def identifier
  user_params.values_at(*MinimalistAuthentication::Authenticator::LOGIN_FIELDS).compact.first
end
log_in_user() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 43
def log_in_user
  self.return_to = session["return_to"]
  reset_session
  authenticated_user.logged_in
  session[MinimalistAuthentication.configuration.session_key] = authenticated_user.id
end
login_redirect_to() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 87
def login_redirect_to
  send(MinimalistAuthentication.configuration.login_redirect_path)
end
logout_redirect_to() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 91
def logout_redirect_to
  send(MinimalistAuthentication.configuration.logout_redirect_path)
end
redirect_logged_in_users() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 64
def redirect_logged_in_users
  redirect_to(login_redirect_to) if logged_in?
end
set_or_verify_email() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 54
def set_or_verify_email
  if authenticated_user.needs_email_set?
    redirect_to edit_email_path
  elsif authenticated_user.needs_email_verification? && !attempting_to_verify?
    redirect_to new_email_verification_path
  else
    false
  end
end
user() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 35
def user
  @user ||= MinimalistAuthentication.configuration.user_model.new
end
user_params() click to toggle source
# File lib/minimalist_authentication/sessions.rb, line 50
def user_params
  @user_params ||= params.fetch(:user, {}).permit(:email, :username, :password)
end