Soc/app/controllers/sessions_controller.rb

40 lines
928 B
Ruby
Raw Normal View History

# frozen_string_literal: true
class SessionsController < ApplicationController
skip_before_action :require_login, only: [:new, :create]
2023-08-19 14:38:38 +00:00
before_action :set_user, only: [:create]
before_action :ensure_email_confirmed, only: [:create]
def new; end
def create
2023-10-20 10:19:09 +00:00
@user = User.authenticate_by(username: params[:username], password: params[:password])
if @user
session[:user_id] = @user.id
2023-08-20 11:49:21 +00:00
redirect_to root_path, notice: t(".logged_in")
else
2023-08-18 19:55:12 +00:00
flash.now.alert = t(".login_fail")
render :new, status: :unprocessable_entity
end
end
def destroy_session
reset_session
redirect_to root_path, notice: t(".logged_out")
end
2023-08-19 14:38:38 +00:00
private
def set_user
@user = User.find_by(username: params[:username])
end
def ensure_email_confirmed
return unless @user.requires_confirmation?
flash.alert = t(".account_not_confirmed")
redirect_to new_session_path
end
end