36 lines
729 B
Ruby
36 lines
729 B
Ruby
# frozen_string_literal: true
|
|
|
|
# Sessions controller
|
|
class SessionsController < ApplicationController
|
|
def new; end
|
|
|
|
def create
|
|
@user = User.find_by(email: params[:email])
|
|
problem = problem_with_login
|
|
if problem
|
|
redirect_to '/welcome', notice: problem
|
|
else
|
|
session[:user_id] = @user.id
|
|
redirect_to '/welcome'
|
|
end
|
|
end
|
|
|
|
def delete
|
|
session.delete(:user_id)
|
|
redirect_to '/welcome', notice: 'Logged out properly'
|
|
end
|
|
|
|
def welcome; end
|
|
|
|
private
|
|
|
|
def problem_with_login
|
|
if !@user
|
|
'Wrong email address'
|
|
elsif !@user.authenticate(params[:password])
|
|
'Wrong password'
|
|
elsif @user.blocked?
|
|
'You are blocked, please contact support'
|
|
end
|
|
end
|
|
end
|