Skip to content

Deploy stages/rc-2017-08-07 to staging#1590

Merged
zachmargolis merged 111 commits intostages/stagingfrom
margolis-deploy-stages-rc-2017-08-07-to-staging
Aug 7, 2017
Merged

Deploy stages/rc-2017-08-07 to staging#1590
zachmargolis merged 111 commits intostages/stagingfrom
margolis-deploy-stages-rc-2017-08-07-to-staging

Conversation

@zachmargolis
Copy link
Contributor

Realted: #1586

There were merge conflicts with a simple PR (possibly related to an out-of-band commit), so I did the merge on a separate branch manually with a --strategy=ours so make sure the RC gets to staging with no conflicts

el-mapache and others added 30 commits June 27, 2017 16:37
**Why**: The feature in question is account reactivation, this improves
naming consistency
**Why**: Consistency is key. In this case, the cancel link on the
forgot password page was always linking to the home page.

**How**: Don't use the `shared/cancel` partial because the user will
never be signing up or going through IdV if they are accessing the
Forgot Password page, so we can directly link to the decorated session's
`cancel_link_path` which contains the logic to determine whether it
should point to the home page or the branded page.
**Why**: Testing for the link text alone is not enough. We also
want to make sure the link is pointing to the right place.
Renames account recovery to account reactivation
Return to branded page consistently when canceling
**Why**:
Removing references to the session will make it easier to
extract VendorValidator work into a background job
**Why**:
Extracting this into a serializable object will make it
easier to refactor these classes into background jobs.
**Why**: We were comparing datetimes without freezing Time.zone.now,
leading to flickering specs.

**How**: Instead of comparing `otp_last_sent_at` with the current time,
check that the current `otp_last_sent_at` is greater than the previous
one.
**Why**: To enable rollout
Make otp_rate_limiter_spec more robust
**Why**: The retry and raise portion of `find_or_create_with_phone`
was not tested.
**Why**:
This tells the screen reader the content in this div
is hidden. When the accordian is expanded, aria-
hidden is changed to false, letting the screen
reader know there is new content on screen.
Improve test coverage for OtpRequestsTracker
**Why**
The situation

As @andrewhughey had stated in 18F/identity-private#1890 (comment), here is the flow that this PR is fixing:

create account (email, password, 2FA)
verify identity (person info, financial info)
choose to confirm address by mail
send letter
see profile / flash message that letter was sent
sign out
sign in
asked for code from letter but oh no! I never got a letter
choose send new letter

expected: send new letter screen

actual: restart identity verification

**How**

This PR adds logic to prevent the user from being redirected back to identity verification, sending them to the "Send another letter" confirmation screen instead, as expected.

The faulty redirect was happening because the a request to send more mail was triggering the IdvSession service, which redirects to verification if verification hasn't been completed. To fix this, we added an exception that prevents that redirect if a user has mail already sent mail.

For issue: 18F/identity-private#1890
**Why**: As part of backgrounding vendor proofing, it will be helpful
for the IdV form objects to behave like the rest of the form objects in
the app so we can extract them from the `Idv::Step` subclasses and
invoke them in the controller.
Add aria-hidden to accordian content div
Return FormResponse from IdV form submission
Prevent Verify by mail flow redirect bug
Add CBP GOES production config
**Why**: Our test print had issues with unicode
Send plain ASCII attributes in verify-by-mail
**Why**: Helps with our translation pipeline

**How**: Make sure keys use word characters and underscores only
**Why**:
This will let us break submission in to two steps and
into two controller actions which will further help us
when we move the call to our vendors to background
jobs.
Separate idv_form from Idv::Step classes
monfresh and others added 20 commits July 20, 2017 15:30
…irect

Don't delete SP info from session after redirect
**Why**: Twilio does not allow us to call users in some US territories
which have a +1 internation code. This commit adds frontend code that
disables the phone option and messages the user that they will have to
receive an OTP via text.

Validate that phone and otp delivery method match

**Why**: If we can't support voice for a user's phone number, and they
manage to submit the form (e.g. they have JS disabled) we want to
display an error message explaining the problem

Disable unsupported voice cofirm in phone forms

**Why**: If a user provides a phone number that is unsupported for voice
in the form to edit their 2FA phone number or the idv phone form, we
want to send them an SMS and not send them give them the option to
select phone.

Load unsupported phone area codes in data attr

**Why**: We don't want to maintain a list of unsupported area codes in
both the JS and in the ruby code.
Disable phone OTP option in select US area codes
**Why**:
- An interpolation key came back capitalized incorrectly
- A separate value (an array) was a JSON string rather than
  a literal array
**Why**: If someone attempts to visit the sign in page with an
invalid (i.e. expired) `request_id` (which has happened in production),
we should allow the user to sign in instead of getting a 500 error.

**How**: Use `ServiceProviderRequest.from_uuid` instead of `find_by`
because the former returns a null object if there is no match. We were
already using `from_uuid` everywhere else except in
`StoreSpMetadataInSession`.
…session

Allow user to sign in with invalid request_id
Add quotes to value in application.yml
Run user_flow specs in available locales
**Why**: In order to support internation numbers, we need to remove the
validation that requires phone numbers have a US country code

Remove US country code from phone normalization

**Why**: We want to allow users to have internation numbers, which means
we need to be prepared to format internation numbers.

Add control for selecting international code

**Why**: Users need to be able to specify their international code so
that we can:

1. Communicate to them whether voice OTP is supported for their country
2. Validate their phone number is properly formatted

Make app aware of intl voice unsupported numbers

**Why**: The app needs to know which international numbers don't support
voice calling so it can render an error in those cases.

Validate phone numbers are valid for intl codes

**Why**: We want to make sure that the phones the users are entering are
plausible phone numbers

**How**: Format phones for their international code before validating
them in the phone forms

Add intl code dropdown to update phone form

**Why**: So that users can select an international phone code when
updating their 2FA phone
**Why**:
Error type was used for button name also

Also clean up repeated view_model methods
**Why**: Completeness
**Why**: It is confusing that the international code selection and the
number in the phone input can be out of sync. This commit keeps both in
sync by updating them as the user types. This also helps make sure the
format of phone number makes a little more sense.

Use libphonenumber-js to format intl numbers

**Why**: The phone number formatter built into field-kit does not know
how to format international numbers. This commit abandons that phone
formatter in favor of a custom formatter built on top of
libphonenumber-js which does know how to format international numbers.

Format phone numbers on update user phone form

**Why**: This change gives users the same experience typing numbers and
selecting international codes that they get from the 2FA setup form.
Update international code as user types phone
@zachmargolis zachmargolis force-pushed the margolis-deploy-stages-rc-2017-08-07-to-staging branch from e327f2d to 898dac9 Compare August 4, 2017 19:21
Copy link
Contributor

@monfresh monfresh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@zachmargolis zachmargolis merged commit 40cc2cc into stages/staging Aug 7, 2017
@zachmargolis zachmargolis deleted the margolis-deploy-stages-rc-2017-08-07-to-staging branch August 7, 2017 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.