From 70d9bf7da6fc6941d3a056aee75d8bef8e889108 Mon Sep 17 00:00:00 2001 From: Matthew Ingle Date: Thu, 4 Aug 2016 19:11:32 -0400 Subject: [PATCH 1/3] Resource was null if recaptcha was not compeleted or invalid this made displaying error messages difficult --- lib/devise_security_extension/patches/controller_captcha.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/devise_security_extension/patches/controller_captcha.rb b/lib/devise_security_extension/patches/controller_captcha.rb index 92187074..c7efe0ce 100644 --- a/lib/devise_security_extension/patches/controller_captcha.rb +++ b/lib/devise_security_extension/patches/controller_captcha.rb @@ -3,12 +3,12 @@ module ControllerCaptcha extend ActiveSupport::Concern included do - prepend_before_action :check_captcha, only: [:create] + append_before_action :check_captcha, only: [:create] end private def check_captcha - return if ((defined? verify_recaptcha) && (verify_recaptcha)) || ((defined? valid_captcha?) && (valid_captcha? params[:captcha])) + return resource if ((defined? verify_recaptcha) && (verify_recaptcha)) || ((defined? valid_captcha?) && (valid_captcha? params[:captcha])) flash[:alert] = t('devise.invalid_captcha') if is_navigational_format? respond_with({}, location: url_for(action: :new)) From 80d94f8cef3b98e3bb5881ac5b11246e357b36ea Mon Sep 17 00:00:00 2001 From: Matthew Ingle Date: Thu, 4 Aug 2016 19:37:28 -0400 Subject: [PATCH 2/3] Added resource line --- lib/devise_security_extension/patches/controller_captcha.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/devise_security_extension/patches/controller_captcha.rb b/lib/devise_security_extension/patches/controller_captcha.rb index c7efe0ce..a5289c67 100644 --- a/lib/devise_security_extension/patches/controller_captcha.rb +++ b/lib/devise_security_extension/patches/controller_captcha.rb @@ -8,6 +8,7 @@ module ControllerCaptcha private def check_captcha + build_resource(sign_up_params) return resource if ((defined? verify_recaptcha) && (verify_recaptcha)) || ((defined? valid_captcha?) && (valid_captcha? params[:captcha])) flash[:alert] = t('devise.invalid_captcha') if is_navigational_format? From f727066ba95078ab28fa0ec31202a292912c7f47 Mon Sep 17 00:00:00 2001 From: Matthew Ingle Date: Thu, 4 Aug 2016 19:40:41 -0400 Subject: [PATCH 3/3] added error message --- lib/devise_security_extension/patches/controller_captcha.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/devise_security_extension/patches/controller_captcha.rb b/lib/devise_security_extension/patches/controller_captcha.rb index a5289c67..528594f3 100644 --- a/lib/devise_security_extension/patches/controller_captcha.rb +++ b/lib/devise_security_extension/patches/controller_captcha.rb @@ -9,8 +9,11 @@ module ControllerCaptcha private def check_captcha build_resource(sign_up_params) - return resource if ((defined? verify_recaptcha) && (verify_recaptcha)) || ((defined? valid_captcha?) && (valid_captcha? params[:captcha])) + if ((defined? verify_recaptcha) && (verify_recaptcha)) || ((defined? valid_captcha?) && (valid_captcha? params[:captcha])) + resource.errors.add :base, t('devise.invalid_captcha') + return resource + end flash[:alert] = t('devise.invalid_captcha') if is_navigational_format? respond_with({}, location: url_for(action: :new)) end