From 4d13d8313365c5680a9172137cade99c14891933 Mon Sep 17 00:00:00 2001 From: ashukla Date: Wed, 22 Jan 2025 08:28:55 -0600 Subject: [PATCH 1/3] Bug Fixes, socure, user who reached capture complete page should not be able to recapture --- .../hybrid_mobile/socure/document_capture_controller.rb | 5 +++++ .../idv/hybrid_mobile/hybrid_socure_mobile_spec.rb | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb b/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb index aede97eece4..92a22825c78 100644 --- a/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb +++ b/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb @@ -18,6 +18,11 @@ class DocumentCaptureController < ApplicationController before_action :fetch_test_verification_data, only: [:update] def show + if stored_result&.success? + redirect_to idv_hybrid_mobile_capture_complete_url + return + end + Funnel::DocAuth::RegisterStep.new(document_capture_user.id, sp_session[:issuer]) .call('hybrid_mobile_socure_document_capture', :view, true) diff --git a/spec/features/idv/hybrid_mobile/hybrid_socure_mobile_spec.rb b/spec/features/idv/hybrid_mobile/hybrid_socure_mobile_spec.rb index 768614a0afe..f5729f69374 100644 --- a/spec/features/idv/hybrid_mobile/hybrid_socure_mobile_spec.rb +++ b/spec/features/idv/hybrid_mobile/hybrid_socure_mobile_spec.rb @@ -101,10 +101,11 @@ expect(page).to have_text(t('doc_auth.instructions.switch_back')) expect_step_indicator_current_step(t('step_indicator.flows.idv.verify_id')) - # To be fixed in app: # Confirm app disallows jumping back to DocumentCapture page - # visit idv_hybrid_mobile_socure_document_capture_url - # expect(page).to have_current_path(idv_hybrid_mobile_capture_complete_url) + visit idv_hybrid_mobile_socure_document_capture_url + expect(page).to have_current_path(idv_hybrid_mobile_capture_complete_url) + visit idv_hybrid_mobile_socure_document_capture_update_url + expect(page).to have_current_path(idv_hybrid_mobile_capture_complete_url) end perform_in_browser(:desktop) do From babe4ab347dc607dec9fbd2a67ba79aa496ed9b9 Mon Sep 17 00:00:00 2001 From: ashukla Date: Wed, 22 Jan 2025 08:30:07 -0600 Subject: [PATCH 2/3] changelog: Bug Fixes, socure, user who reached capture complete page should not be able to recapture From 9ca3f2afee898e3628c3684d6d117f43a7b8978a Mon Sep 17 00:00:00 2001 From: ashukla Date: Thu, 23 Jan 2025 10:52:30 -0600 Subject: [PATCH 3/3] Addressing pr comments for improved code styling --- .../socure/document_capture_controller.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb b/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb index 92a22825c78..f9fd639c4db 100644 --- a/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb +++ b/app/controllers/idv/hybrid_mobile/socure/document_capture_controller.rb @@ -11,6 +11,7 @@ class DocumentCaptureController < ApplicationController include SocureErrorsConcern check_or_render_not_found -> { IdentityConfig.store.socure_docv_enabled } + before_action :validate_step_not_completed, only: [:show] before_action :check_valid_document_capture_session, except: [:update] before_action -> do redirect_to_correct_vendor(Idp::Constants::Vendors::SOCURE, in_hybrid_mobile: true) @@ -18,11 +19,6 @@ class DocumentCaptureController < ApplicationController before_action :fetch_test_verification_data, only: [:update] def show - if stored_result&.success? - redirect_to idv_hybrid_mobile_capture_complete_url - return - end - Funnel::DocAuth::RegisterStep.new(document_capture_user.id, sp_session[:issuer]) .call('hybrid_mobile_socure_document_capture', :view, true) @@ -89,6 +85,11 @@ def errors private + def validate_step_not_completed + return if stored_result.blank? || !stored_result.success? + redirect_to idv_hybrid_mobile_capture_complete_url + end + def socure_errors_presenter(result) SocureErrorPresenter.new( error_code: error_code_for(result),