diff --git a/Gemfile b/Gemfile index 0bff02cfa36..170805bac18 100644 --- a/Gemfile +++ b/Gemfile @@ -52,7 +52,7 @@ gem 'rack-timeout', require: false gem 'redacted_struct' gem 'redis', '>= 3.2.0' gem 'redis-namespace' -gem 'redis-session-store', '>= 0.11.4' +gem 'redis-session-store', github: '18F/redis-session-store', tag: 'v0.12-18f' gem 'retries' gem 'rotp', '~> 6.1' gem 'rqrcode' @@ -72,7 +72,7 @@ gem 'view_component', '~> 2.82.0' gem 'webauthn', '~> 2.5.2' gem 'xmldsig', '~> 0.6' gem 'xmlenc', '~> 0.7', '>= 0.7.1' -gem 'yard' +gem 'yard', require: false # This version of the zxcvbn gem matches the data and behavior of the zxcvbn NPM package. # It should not be updated without verifying that the behavior still matches JS version 4.4.2. diff --git a/Gemfile.lock b/Gemfile.lock index 7cc691748c9..d0cdd966ca7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -23,6 +23,15 @@ GIT specs: identity_validations (0.7.2) +GIT + remote: https://github.com/18F/redis-session-store.git + revision: 253aa4f466cf61e129625ea01d1f120fb9c8685d + tag: v0.12-18f + specs: + redis-session-store (0.12.pre.18f) + actionpack (>= 6, < 8) + redis (>= 3, < 6) + GIT remote: https://github.com/18F/saml_idp.git revision: d8e7deb7da3aa43bae0e5b0891c8de123d492484 @@ -213,8 +222,8 @@ GEM coderay (1.1.3) coercible (1.0.0) descendants_tracker (~> 0.0.1) - concurrent-ruby (1.2.0) - connection_pool (2.2.5) + concurrent-ruby (1.2.2) + connection_pool (2.3.0) cose (1.3.0) cbor (~> 0.5.9) openssl-signature_algorithm (~> 1.0) @@ -394,7 +403,7 @@ GEM mini_histogram (0.3.1) mini_mime (1.1.2) mini_portile2 (2.8.1) - minitest (5.17.0) + minitest (5.18.0) msgpack (1.6.0) multiset (0.5.3) nenv (0.3.0) @@ -521,15 +530,12 @@ GEM ffi (~> 1.0) redacted_struct (1.1.0) redcarpet (3.6.0) - redis (5.0.5) + redis (5.0.6) redis-client (>= 0.9.0) - redis-client (0.12.0) + redis-client (0.14.0) connection_pool redis-namespace (1.8.1) redis (>= 3.0.4) - redis-session-store (0.11.5) - actionpack (>= 6, < 8) - redis (>= 3, < 6) regexp_parser (2.6.1) reline (0.2.7) io-console (~> 0.5) @@ -797,7 +803,7 @@ DEPENDENCIES redacted_struct redis (>= 3.2.0) redis-namespace - redis-session-store (>= 0.11.4) + redis-session-store! retries rotp (~> 6.1) rqrcode diff --git a/app/controllers/idv/address_controller.rb b/app/controllers/idv/address_controller.rb index 72670ac32c5..a52f40c116b 100644 --- a/app/controllers/idv/address_controller.rb +++ b/app/controllers/idv/address_controller.rb @@ -7,6 +7,8 @@ class AddressController < ApplicationController def new analytics.idv_address_visit + + @presenter = AddressPresenter.new(pii: @pii) end def update diff --git a/app/controllers/idv/in_person/usps_locations_controller.rb b/app/controllers/idv/in_person/usps_locations_controller.rb index 7adb827a183..6e62cb11ecf 100644 --- a/app/controllers/idv/in_person/usps_locations_controller.rb +++ b/app/controllers/idv/in_person/usps_locations_controller.rb @@ -104,7 +104,6 @@ def update_params params.require(:usps_location).permit( :formatted_city_state_zip, :name, - :phone, :saturday_hours, :street_address, :sunday_hours, diff --git a/app/forms/idv/in_person/address_form.rb b/app/forms/idv/in_person/address_form.rb index dd229925f64..a9bf9764bdf 100644 --- a/app/forms/idv/in_person/address_form.rb +++ b/app/forms/idv/in_person/address_form.rb @@ -15,9 +15,14 @@ def self.model_name def submit(params) consume_params(params) + cleaned_errors = errors.deep_dup + cleaned_errors.delete(:city, :nontransliterable_field) + cleaned_errors.delete(:address1, :nontransliterable_field) + cleaned_errors.delete(:address2, :nontransliterable_field) + FormResponse.new( success: valid?, - errors: errors, + errors: cleaned_errors, ) end diff --git a/app/forms/idv/state_id_form.rb b/app/forms/idv/state_id_form.rb index 5b2a1a1b7c3..1ad31ec5d4a 100644 --- a/app/forms/idv/state_id_form.rb +++ b/app/forms/idv/state_id_form.rb @@ -18,9 +18,13 @@ def initialize(pii) def submit(params) consume_params(params) + cleaned_errors = errors.deep_dup + cleaned_errors.delete(:first_name, :nontransliterable_field) + cleaned_errors.delete(:last_name, :nontransliterable_field) + FormResponse.new( success: valid?, - errors: errors, + errors: cleaned_errors, ) end diff --git a/app/javascript/packages/document-capture/components/address-search.tsx b/app/javascript/packages/document-capture/components/address-search.tsx index e8a5374c797..cf5b791766f 100644 --- a/app/javascript/packages/document-capture/components/address-search.tsx +++ b/app/javascript/packages/document-capture/components/address-search.tsx @@ -16,11 +16,9 @@ export interface PostOffice { city: string; distance: string; name: string; - phone: string; saturday_hours: string; state: string; sunday_hours: string; - tty: string; weekday_hours: string; zip_code_4: string; zip_code_5: string; @@ -49,11 +47,9 @@ const formatLocations = (postOffices: PostOffice[]): FormattedLocation[] => id: index, distance: po.distance, name: po.name, - phone: po.phone, saturdayHours: po.saturday_hours, streetAddress: po.address, sundayHours: po.sunday_hours, - tty: po.tty, weekdayHours: po.weekday_hours, isPilot: !!po.is_pilot, })); diff --git a/app/javascript/packages/document-capture/components/in-person-location-step.tsx b/app/javascript/packages/document-capture/components/in-person-location-step.tsx index f447c5ee5e1..6712e3b8ef1 100644 --- a/app/javascript/packages/document-capture/components/in-person-location-step.tsx +++ b/app/javascript/packages/document-capture/components/in-person-location-step.tsx @@ -12,7 +12,6 @@ interface PostOffice { address: string; city: string; name: string; - phone: string; saturday_hours: string; state: string; sunday_hours: string; @@ -25,7 +24,6 @@ interface FormattedLocation { formattedCityStateZip: string; id: number; name: string; - phone: string; saturdayHours: string; streetAddress: string; sundayHours: string; @@ -53,7 +51,6 @@ const formatLocation = (postOffices: PostOffice[]) => { formattedCityStateZip: `${po.city}, ${po.state}, ${po.zip_code_5}-${po.zip_code_4}`, id: index, name: po.name, - phone: po.phone, saturdayHours: po.saturday_hours, streetAddress: po.address, sundayHours: po.sunday_hours, diff --git a/app/javascript/packages/document-capture/components/in-person-locations.tsx b/app/javascript/packages/document-capture/components/in-person-locations.tsx index d0727730200..6ea458b12b0 100644 --- a/app/javascript/packages/document-capture/components/in-person-locations.tsx +++ b/app/javascript/packages/document-capture/components/in-person-locations.tsx @@ -7,7 +7,6 @@ export interface FormattedLocation { distance: string; id: number; name: string; - phone: string; saturdayHours: string; streetAddress: string; sundayHours: string; @@ -55,7 +54,6 @@ function InPersonLocations({ locations, onSelect, address }: InPersonLocationsPr streetAddress={item.streetAddress} selectId={item.id} formattedCityStateZip={item.formattedCityStateZip} - phone={item.phone} weekdayHours={item.weekdayHours} saturdayHours={item.saturdayHours} sundayHours={item.sundayHours} diff --git a/app/javascript/packages/document-capture/components/location-collection-item.spec.tsx b/app/javascript/packages/document-capture/components/location-collection-item.spec.tsx index af8291bf55e..013d181f665 100644 --- a/app/javascript/packages/document-capture/components/location-collection-item.spec.tsx +++ b/app/javascript/packages/document-capture/components/location-collection-item.spec.tsx @@ -67,7 +67,6 @@ describe('LocationCollectionItem', () => { const { getByText } = render( { const addressParent = getByText('123 Test Address').parentElement!; expect(addressParent.textContent).to.contain('in_person_proofing.body.location.distance'); - expect(addressParent.textContent).to.contain('555-123-4567'); }); context('when no retail hours are known', () => { diff --git a/app/javascript/packages/document-capture/components/location-collection-item.tsx b/app/javascript/packages/document-capture/components/location-collection-item.tsx index 87b1bcd38b0..266cfd2f0cf 100644 --- a/app/javascript/packages/document-capture/components/location-collection-item.tsx +++ b/app/javascript/packages/document-capture/components/location-collection-item.tsx @@ -6,7 +6,6 @@ interface LocationCollectionItemProps { formattedCityStateZip: string; handleSelect: (event: React.FormEvent, selection: number) => void; name?: string; - phone?: string; saturdayHours: string; selectId: number; streetAddress: string; @@ -19,7 +18,6 @@ function LocationCollectionItem({ formattedCityStateZip, handleSelect, name, - phone, saturdayHours, selectId, streetAddress, @@ -62,12 +60,6 @@ function LocationCollectionItem({ {`${t('in_person_proofing.body.location.retail_hours_sun')} ${sundayHours}`} )} - {phone && ( -
-

{t('in_person_proofing.body.location.contact_info_heading')}

-
{`${t('in_person_proofing.body.location.phone')} ${phone}`}
-
- )}