Only apply email verification migration to instances with required email verification
Overview
In !35492 (merged), we created a background migration that would remediate incorrectly confirmed email addresses retroactively.
In https://about.gitlab.com/releases/2020/07/22/gitlab-13-2-released/#comment-5006210948, a user reported some unexpected behavior when they were not able to log in after the migration ran. This instance did not have email set up, implying that they may not have required email verification enabled.
We should make sure that this fix does not inadvertently require email verification to be enabled.
Proposal
If email verification is disabled in the admin panel:
- The migration should unverify email addresses as normal, but we should not attempt to send corrective emails to users.
- Users should still be able to log in and use GitLab.
- New users registering on the instance should not be required to verify their email address.
Implementation
The implementation of email verification setting "Send confirmation email on sign-up" is only applied to new users (when a new user is created). It basically makes a "force" verification (in code), so technically the users are "verified". Under the hood, devise (the auth library we use) always requires email confirmation and when an user is unconfirmed the user needs to confirm the email address by clicking on the link.
In the MR (!38024 (merged)) I disabled running the data migration that unconfirms users when the confirmation setting is off (no emails).