mirror of
https://github.com/ryankazokas/turbovault-app.git
synced 2026-04-16 22:12:53 +00:00
32 lines
717 B
Ruby
32 lines
717 B
Ruby
# typed: true
|
|
|
|
class SessionsController < ApplicationController
|
|
extend T::Sig
|
|
|
|
before_action :require_no_authentication, only: [ :new, :create ]
|
|
before_action :require_authentication, only: [ :destroy ]
|
|
|
|
sig { void }
|
|
def new
|
|
end
|
|
|
|
sig { void }
|
|
def create
|
|
user = User.find_by(email: params[:email].downcase)
|
|
|
|
if user && user.authenticate(params[:password])
|
|
sign_in(user)
|
|
redirect_to dashboard_path, notice: "Welcome back, #{user.username}!"
|
|
else
|
|
flash.now[:alert] = "Invalid email or password"
|
|
render :new, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
sig { void }
|
|
def destroy
|
|
sign_out
|
|
redirect_to root_path, notice: "You have been signed out."
|
|
end
|
|
end
|