|
|
|
class Auth::SessionsController < Devise::SessionsController
|
|
|
|
include Helpers::Email
|
|
|
|
|
|
|
|
def create
|
|
|
|
self.resource = resource_class.new
|
|
|
|
if params.dig(resource_class_name, "email").empty?
|
|
|
|
resource.errors.add :email, "Enter an email address"
|
|
|
|
elsif !email_valid?(params.dig(resource_class_name, "email"))
|
|
|
|
resource.errors.add :email, "Enter an email address in the correct format, like name@example.com"
|
|
|
|
end
|
|
|
|
if params.dig(resource_class_name, "password").empty?
|
|
|
|
resource.errors.add :password, "Enter a password"
|
|
|
|
end
|
|
|
|
if resource.errors.present?
|
|
|
|
render :new, status: :unprocessable_entity
|
|
|
|
else
|
|
|
|
super
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def resource_class
|
|
|
|
request.path.include?("admin") ? AdminUser : User
|
|
|
|
end
|
|
|
|
|
|
|
|
def resource_class_name
|
|
|
|
resource_class.name.underscore
|
|
|
|
end
|
|
|
|
|
|
|
|
def after_sign_in_path_for(resource)
|
|
|
|
if resource.need_two_factor_authentication?(request)
|
|
|
|
send("#{resource_name}_two_factor_authentication_path")
|
|
|
|
else
|
|
|
|
params.dig(resource_class_name, "start").present? ? case_logs_path : super
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|