diff --git a/app/controllers/concerns/idv/document_capture_concern.rb b/app/controllers/concerns/idv/document_capture_concern.rb index e02aa9b69b2..edcfaa0f4d8 100644 --- a/app/controllers/concerns/idv/document_capture_concern.rb +++ b/app/controllers/concerns/idv/document_capture_concern.rb @@ -8,7 +8,6 @@ module DocumentCaptureConcern def handle_stored_result(user: current_user, store_in_session: true) if stored_result&.success? && selfie_requirement_met? - save_proofing_components(user) extract_pii_from_doc(user, store_in_session: store_in_session) flash[:success] = t('doc_auth.headings.capture_complete') successful_response @@ -18,16 +17,6 @@ def handle_stored_result(user: current_user, store_in_session: true) end end - def save_proofing_components(user) - return unless user - - component_attributes = { - document_check: doc_auth_vendor, - document_type: 'state_id', - } - ProofingComponent.create_or_find_by(user: user).update(component_attributes) - end - def successful_response FormResponse.new(success: true) end diff --git a/app/controllers/concerns/idv/verify_info_concern.rb b/app/controllers/concerns/idv/verify_info_concern.rb index f3c0ac15f3a..fc71a949363 100644 --- a/app/controllers/concerns/idv/verify_info_concern.rb +++ b/app/controllers/concerns/idv/verify_info_concern.rb @@ -267,26 +267,11 @@ def summarize_result_and_rate_limit(summary_result) proofing_results_exception = summary_result.extra.dig(:proofing_results, :exception) resolution_rate_limiter.increment! if proofing_results_exception.blank? - if summary_result.success? - add_proofing_components(summary_result) - else + if !summary_result.success? idv_failure(summary_result) end end - def add_proofing_components(summary_result) - ProofingComponent.create_or_find_by(user: current_user).update( - resolution_check: Idp::Constants::Vendors::LEXIS_NEXIS, - source_check: summary_result.extra.dig( - :proofing_results, - :context, - :stages, - :state_id, - :vendor_name, - ), - ) - end - def load_async_state dcs_uuid = idv_session.verify_info_step_document_capture_session_uuid dcs = DocumentCaptureSession.find_by(uuid: dcs_uuid) diff --git a/app/controllers/idv/by_mail/request_letter_controller.rb b/app/controllers/idv/by_mail/request_letter_controller.rb index b7799d71181..e78689f9488 100644 --- a/app/controllers/idv/by_mail/request_letter_controller.rb +++ b/app/controllers/idv/by_mail/request_letter_controller.rb @@ -48,8 +48,6 @@ def update_tracking log_letter_requested_analytics(resend: false) create_user_event(:gpo_mail_sent, current_user) - - ProofingComponent.find_or_create_by(user: current_user).update(address_check: 'gpo_letter') end def confirm_mail_not_rate_limited diff --git a/app/controllers/idv/in_person/usps_locations_controller.rb b/app/controllers/idv/in_person/usps_locations_controller.rb index 36412215794..35c8366801e 100644 --- a/app/controllers/idv/in_person/usps_locations_controller.rb +++ b/app/controllers/idv/in_person/usps_locations_controller.rb @@ -63,13 +63,9 @@ def update sponsor_id: enrollment_sponsor_id, ) - add_proofing_component - render json: { success: true }, status: :ok end - private - def idv_session if user_session && current_user @idv_session ||= Idv::Session.new( @@ -80,6 +76,8 @@ def idv_session end end + private + def document_capture_session if idv_session&.document_capture_session_uuid # standard flow DocumentCaptureSession.find_by(uuid: idv_session.document_capture_session_uuid) @@ -92,12 +90,6 @@ def proofer @proofer ||= EnrollmentHelper.usps_proofer end - def add_proofing_component - ProofingComponent. - create_or_find_by(user: current_or_hybrid_user). - update(document_check: Idp::Constants::Vendors::USPS) - end - def localized_locations(locations) return nil if locations.nil? locations.map do |location| diff --git a/app/controllers/idv/link_sent_controller.rb b/app/controllers/idv/link_sent_controller.rb index 2c16e0d1e6f..93a8137bc86 100644 --- a/app/controllers/idv/link_sent_controller.rb +++ b/app/controllers/idv/link_sent_controller.rb @@ -65,7 +65,6 @@ def analytics_arguments end def handle_document_verification_success - save_proofing_components(current_user) extract_pii_from_doc(current_user, store_in_session: true) idv_session.flow_path = 'hybrid' end diff --git a/app/controllers/idv/personal_key_controller.rb b/app/controllers/idv/personal_key_controller.rb index 7cccf2d8924..358b1f97fd0 100644 --- a/app/controllers/idv/personal_key_controller.rb +++ b/app/controllers/idv/personal_key_controller.rb @@ -29,7 +29,6 @@ def show if pii_is_missing? redirect_to_retrieve_pii else - add_proofing_component finish_idv_session end end @@ -78,10 +77,6 @@ def next_step end end - def add_proofing_component - ProofingComponent.find_or_create_by(user: current_user).update(verified_at: Time.zone.now) - end - def finish_idv_session @code = personal_key @personal_key_generated_at = current_user.personal_key_generated_at diff --git a/app/forms/event_disavowal/password_reset_from_disavowal_form.rb b/app/forms/event_disavowal/password_reset_from_disavowal_form.rb index 06df1ca4e2c..9f418501e0f 100644 --- a/app/forms/event_disavowal/password_reset_from_disavowal_form.rb +++ b/app/forms/event_disavowal/password_reset_from_disavowal_form.rb @@ -36,7 +36,6 @@ def mark_profile_inactive user.active_profile&.deactivate(:password_reset) Funnel::DocAuth::ResetSteps.call(@user.id) - user.proofing_component&.destroy end def extra_analytics_attributes diff --git a/app/forms/reset_password_form.rb b/app/forms/reset_password_form.rb index adcf084577e..d07ffa8ebdd 100644 --- a/app/forms/reset_password_form.rb +++ b/app/forms/reset_password_form.rb @@ -65,7 +65,6 @@ def mark_profile_inactive active_profile.deactivate(:password_reset) Funnel::DocAuth::ResetSteps.call(user.id) - user.proofing_component&.destroy end # It is possible for an account that is resetting their password to be "invalid". diff --git a/app/jobs/resolution_proofing_job.rb b/app/jobs/resolution_proofing_job.rb index b8cd4e08a95..eaabc3cdc40 100644 --- a/app/jobs/resolution_proofing_job.rb +++ b/app/jobs/resolution_proofing_job.rb @@ -108,7 +108,6 @@ def make_vendor_proofing_requests( ) log_threatmetrix_info(result.device_profiling_result, user) - add_threatmetrix_proofing_component(user.id, result.device_profiling_result) if user.present? CallbackLogData.new( device_profiling_success: result.device_profiling_result.success?, @@ -139,11 +138,4 @@ def logger_info_hash(hash) def progressive_proofer @progressive_proofer ||= Proofing::Resolution::ProgressiveProofer.new end - - def add_threatmetrix_proofing_component(user_id, threatmetrix_result) - ProofingComponent. - create_or_find_by(user_id: user_id). - update(threatmetrix: FeatureManagement.proofing_device_profiling_collecting_enabled?, - threatmetrix_review_status: threatmetrix_result.review_status) - end end diff --git a/app/models/proofing_component.rb b/app/models/proofing_component.rb deleted file mode 100644 index 55ef4d750f0..00000000000 --- a/app/models/proofing_component.rb +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -class ProofingComponent < ApplicationRecord - belongs_to :user -end diff --git a/app/models/user.rb b/app/models/user.rb index 5d53cc38dac..88c89cc9daf 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -44,7 +44,6 @@ class User < ApplicationRecord has_many :backup_code_configurations, dependent: :destroy has_many :document_capture_sessions, dependent: :destroy has_one :registration_log, dependent: :destroy - has_one :proofing_component, dependent: :destroy has_many :service_providers, through: :identities, source: :service_provider_record diff --git a/app/services/idv/phone_step.rb b/app/services/idv/phone_step.rb index 0ed264ffefd..eb13660adce 100644 --- a/app/services/idv/phone_step.rb +++ b/app/services/idv/phone_step.rb @@ -132,9 +132,6 @@ def failed_due_to_timeout_or_exception? def update_idv_session idv_session.applicant = applicant idv_session.mark_phone_step_started! - - ProofingComponent.find_or_create_by(user: idv_session.current_user). - update(address_check: 'lexis_nexis_address') end def start_phone_confirmation_session diff --git a/app/services/idv/steps/doc_auth_base_step.rb b/app/services/idv/steps/doc_auth_base_step.rb index 52306235d87..09434827548 100644 --- a/app/services/idv/steps/doc_auth_base_step.rb +++ b/app/services/idv/steps/doc_auth_base_step.rb @@ -9,21 +9,6 @@ def initialize(flow) private - def save_proofing_components - return unless current_user - - doc_auth_vendor = DocAuthRouter.doc_auth_vendor( - discriminator: flow_session[document_capture_session_uuid_key], - analytics: @flow.analytics, - ) - - component_attributes = { - document_check: doc_auth_vendor, - document_type: 'state_id', - } - ProofingComponent.create_or_find_by(user: current_user).update(component_attributes) - end - def user_id_from_token flow_session[:doc_capture_user_id] end diff --git a/spec/controllers/concerns/idv/step_indicator_concern_spec.rb b/spec/controllers/concerns/idv/step_indicator_concern_spec.rb index 7c52970f208..702fadf58f9 100644 --- a/spec/controllers/concerns/idv/step_indicator_concern_spec.rb +++ b/spec/controllers/concerns/idv/step_indicator_concern_spec.rb @@ -87,7 +87,6 @@ def force_gpo context 'via current idv session' do before do - ProofingComponent.create(user: user, document_check: Idp::Constants::Vendors::USPS) create(:in_person_enrollment, :establishing, user: user) end diff --git a/spec/controllers/idv/enter_password_controller_spec.rb b/spec/controllers/idv/enter_password_controller_spec.rb index 7c8554f6f6d..5bbaab77b78 100644 --- a/spec/controllers/idv/enter_password_controller_spec.rb +++ b/spec/controllers/idv/enter_password_controller_spec.rb @@ -414,7 +414,6 @@ def show stub_request_enroll subject.idv_session.applicant = Idp::Constants::MOCK_IDV_APPLICANT_SAME_ADDRESS_AS_ID_WITH_PHONE - ProofingComponent.create(user: user, document_check: Idp::Constants::Vendors::USPS) allow(IdentityConfig.store).to receive(:in_person_proofing_enabled).and_return(true) end diff --git a/spec/controllers/idv/in_person/usps_locations_controller_spec.rb b/spec/controllers/idv/in_person/usps_locations_controller_spec.rb index 9ba5c554b0b..489df56f68c 100644 --- a/spec/controllers/idv/in_person/usps_locations_controller_spec.rb +++ b/spec/controllers/idv/in_person/usps_locations_controller_spec.rb @@ -374,11 +374,20 @@ end it 'updates proofing component vendor' do - expect(user.proofing_component&.document_check).to be_nil + proofing_components = Idv::ProofingComponents.new( + idv_session: controller.idv_session, + session: controller.session, + user_session: controller.user_session, + user:, + ) + + expect(proofing_components.document_check).to be_nil response - expect(user.proofing_component.document_check).to eq Idp::Constants::Vendors::USPS + user.reload + + expect(proofing_components.document_check).to eq Idp::Constants::Vendors::USPS end end @@ -404,11 +413,20 @@ end it 'updates proofing component vendor' do - expect(user.proofing_component&.document_check).to be_nil + proofing_components = Idv::ProofingComponents.new( + idv_session: controller.idv_session, + session: controller.session, + user_session: controller.user_session, + user:, + ) + + expect(proofing_components.document_check).to be_nil response - expect(user.proofing_component.document_check).to eq Idp::Constants::Vendors::USPS + user.reload + + expect(proofing_components.document_check).to eq Idp::Constants::Vendors::USPS end end diff --git a/spec/controllers/idv/link_sent_controller_spec.rb b/spec/controllers/idv/link_sent_controller_spec.rb index fea657a0e01..9a49ea0c1cd 100644 --- a/spec/controllers/idv/link_sent_controller_spec.rb +++ b/spec/controllers/idv/link_sent_controller_spec.rb @@ -168,9 +168,14 @@ expect(response).to redirect_to(idv_ssn_url) - pc = ProofingComponent.find_by(user_id: user.id) - expect(pc.document_check).to eq('mock') - expect(pc.document_type).to eq('state_id') + proofing_components = Idv::ProofingComponents.new( + idv_session: subject.idv_session, + session: subject.session, + user_session: subject.user_session, + user:, + ) + expect(proofing_components.document_check).to eq('mock') + expect(proofing_components.document_type).to eq('state_id') end context 'redo document capture' do diff --git a/spec/controllers/idv/personal_key_controller_spec.rb b/spec/controllers/idv/personal_key_controller_spec.rb index 33946f4bbe1..d6ac2cc4fe4 100644 --- a/spec/controllers/idv/personal_key_controller_spec.rb +++ b/spec/controllers/idv/personal_key_controller_spec.rb @@ -497,7 +497,6 @@ def assert_personal_key_generated_for_profiles(*profile_pii_pairs) end before do - ProofingComponent.create(user: user, document_check: Idp::Constants::Vendors::USPS) allow(IdentityConfig.store).to receive(:in_person_proofing_enabled).and_return(true) end diff --git a/spec/features/idv/end_to_end_idv_spec.rb b/spec/features/idv/end_to_end_idv_spec.rb index dc2c5123915..8c516ce67bd 100644 --- a/spec/features/idv/end_to_end_idv_spec.rb +++ b/spec/features/idv/end_to_end_idv_spec.rb @@ -33,7 +33,7 @@ validate_verify_info_page complete_verify_step - validate_verify_info_submit(user) + validate_verify_info_submit validate_phone_page try_to_skip_ahead_from_phone @@ -265,12 +265,8 @@ def validate_verify_info_page expect(page).to have_text(DocAuthHelper::GOOD_SSN) end - def validate_verify_info_submit(user) + def validate_verify_info_submit expect(page).to have_content(t('doc_auth.forms.doc_success')) - expect(user.proofing_component.resolution_check).to eq(Idp::Constants::Vendors::LEXIS_NEXIS) - expect(user.proofing_component.source_check).to satisfy do |v| - Idp::Constants::Vendors::SOURCE_CHECK.include?(v) - end end def validate_phone_page @@ -333,6 +329,15 @@ def validate_enter_password_submit(user) profile = user.profiles.first expect(profile.active?).to eq true + expect(profile.proofing_components).to eql( + 'source_check' => 'StateIdMock', + 'threatmetrix' => true, + 'address_check' => 'lexis_nexis_address', + 'document_type' => 'state_id', + 'document_check' => 'mock', + 'resolution_check' => 'lexis_nexis', + 'threatmetrix_review_status' => 'pass', + ) expect(GpoConfirmation.count).to eq(0) end diff --git a/spec/forms/event_disavowal/password_reset_from_disavowal_form_spec.rb b/spec/forms/event_disavowal/password_reset_from_disavowal_form_spec.rb index cab54a33c7c..7d442e98706 100644 --- a/spec/forms/event_disavowal/password_reset_from_disavowal_form_spec.rb +++ b/spec/forms/event_disavowal/password_reset_from_disavowal_form_spec.rb @@ -26,26 +26,4 @@ expect(user.reload.valid_password?(new_password)).to eq(false) end end - - context 'user has an active profile' do - let(:user) { create(:user, :proofed) } - - it 'destroys the proofing component' do - ProofingComponent.create(user_id: user.id, document_check: 'mock') - - subject.submit(password: new_password) - - expect(user.reload.proofing_component).to be_nil - end - end - - context 'user does not have an active profile' do - it 'does not destroy the proofing component' do - ProofingComponent.create(user_id: user.id, document_check: 'mock') - - subject.submit(password: new_password) - - expect(user.reload.proofing_component).to_not be_nil - end - end end diff --git a/spec/forms/gpo_verify_form_spec.rb b/spec/forms/gpo_verify_form_spec.rb index 4aad640877a..6c50506aaa2 100644 --- a/spec/forms/gpo_verify_form_spec.rb +++ b/spec/forms/gpo_verify_form_spec.rb @@ -156,10 +156,6 @@ ) end - let(:proofing_components) do - ProofingComponent.create(user: user, document_check: Idp::Constants::Vendors::USPS) - end - before do allow(IdentityConfig.store).to receive(:in_person_proofing_enabled).and_return(true) end @@ -194,10 +190,6 @@ ) end - let(:proofing_components) do - ProofingComponent.create(user: user, document_check: Idp::Constants::Vendors::USPS) - end - before do allow(IdentityConfig.store).to receive(:in_person_proofing_enabled).and_return(true) end diff --git a/spec/jobs/resolution_proofing_job_spec.rb b/spec/jobs/resolution_proofing_job_spec.rb index 0ce568616d6..697adab8d2e 100644 --- a/spec/jobs/resolution_proofing_job_spec.rb +++ b/spec/jobs/resolution_proofing_job_spec.rb @@ -138,10 +138,6 @@ expect(result_context_stages_threatmetrix[:response_body]).to eq( JSON.parse(LexisNexisFixtures.ddp_success_redacted_response_json, symbolize_names: true), ) - - proofing_component = user.proofing_component - expect(proofing_component.threatmetrix).to equal(true) - expect(proofing_component.threatmetrix_review_status).to eq('pass') end end @@ -340,10 +336,6 @@ expect(result_context_stages_threatmetrix[:client]).to eq('tmx_disabled') expect(@threatmetrix_stub).to_not have_been_requested - - proofing_component = user.proofing_component - expect(proofing_component.threatmetrix).to equal(false) - expect(proofing_component.threatmetrix_review_status).to eq('pass') end end @@ -463,10 +455,6 @@ expect(result_context_stages_threatmetrix[:response_body]).to eq( JSON.parse(LexisNexisFixtures.ddp_success_redacted_response_json, symbolize_names: true), ) - - proofing_component = user.proofing_component - expect(proofing_component.threatmetrix).to equal(true) - expect(proofing_component.threatmetrix_review_status).to eq('pass') end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 94c77ed8f6c..288f591a368 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -10,7 +10,6 @@ it { is_expected.to have_one(:account_reset_request) } it { is_expected.to have_many(:phone_configurations) } it { is_expected.to have_many(:webauthn_configurations) } - it { is_expected.to have_one(:proofing_component) } it { is_expected.to have_many(:in_person_enrollments).dependent(:destroy) } it { is_expected.to have_one(:pending_in_person_enrollment). @@ -333,9 +332,6 @@ describe '#has_in_person_enrollment?' do it 'returns the establishing IPP enrollment that has an address' do - ProofingComponent.find_or_create_by(user: user). - update!(document_check: Idp::Constants::Vendors::USPS) - expect(user.has_in_person_enrollment?).to eq(true) end end diff --git a/spec/services/idv/session_spec.rb b/spec/services/idv/session_spec.rb index df023971d8d..09dd6ec941a 100644 --- a/spec/services/idv/session_spec.rb +++ b/spec/services/idv/session_spec.rb @@ -193,7 +193,6 @@ let(:profile) { subject.profile } before do - ProofingComponent.create(user: user, document_check: Idp::Constants::Vendors::USPS) allow(IdentityConfig.store).to receive(:in_person_proofing_enabled).and_return(true) subject.user_phone_confirmation = true subject.applicant = Idp::Constants::MOCK_IDV_APPLICANT_WITH_PHONE.with_indifferent_access @@ -272,7 +271,6 @@ before do allow(UspsInPersonProofing::EnrollmentHelper).to receive(:schedule_in_person_enrollment) - ProofingComponent.create(user: user, document_check: Idp::Constants::Vendors::USPS) allow(IdentityConfig.store).to receive(:in_person_proofing_enabled).and_return(true) subject.user_phone_confirmation = true subject.applicant = Idp::Constants::MOCK_IDV_APPLICANT_WITH_PHONE.with_indifferent_access