From 4fbaa65534599e674f0cd7e1010e06915cc774bb Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Tue, 15 Feb 2022 09:43:40 +0000 Subject: [PATCH] Handle unconfirmed email message in UserSessionsController --- .../spree/user_sessions_controller.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/controllers/spree/user_sessions_controller.rb b/app/controllers/spree/user_sessions_controller.rb index 342b5dddc9..f945772bc6 100644 --- a/app/controllers/spree/user_sessions_controller.rb +++ b/app/controllers/spree/user_sessions_controller.rb @@ -13,6 +13,7 @@ module Spree helper 'spree/base' + prepend_before_action :handle_unconfirmed_email before_action :set_checkout_redirect, only: :create after_action :ensure_valid_locale_persisted, only: :create @@ -49,6 +50,22 @@ module Spree Spree.t(:login) end + def handle_unconfirmed_email + render_unconfirmed_response if email_unconfirmed? + end + + def email_unconfirmed? + Spree::User.where(email: params.dig(:spree_user, :email), confirmed_at: nil).exists? + end + + def render_unconfirmed_response + render status: :unprocessable_entity, operations: cable_car.inner_html( + "#login-feedback", + partial("layouts/alert", + locals: { type: "alert", message: t(:email_unconfirmed), unconfirmed: true }) + ) + end + def ensure_valid_locale_persisted # When creating a new user session we have to wait until after a successful # login to be able to persist a selected locale on the current user