1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-20 13:52:40 +01:00

Recover more flexibly from an already-verified email

Summary:
Ref T4140. We could hit a redirect loop for a user with a verified primary email address but no "is verified" flag on their account. This shouldn't be possible since the migration should have set the flag, but we can deal with it more gracefully when it does happen (maybe because users forgot to run `storage/upgrade`, or because of ghosts).

In the controller, check the same flag we check before forcing the user to the controller.

When verifying, allow the verification if either the email or user flag isn't set.

Test Plan: Hit `/login/mustverify/`; verified an address.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T4140

Differential Revision: https://secure.phabricator.com/D7621
This commit is contained in:
epriestley 2013-11-21 14:41:32 -08:00
parent 13275860b1
commit 3a035c02e7
2 changed files with 2 additions and 2 deletions

View file

@ -44,7 +44,7 @@ final class PhabricatorEmailVerificationController
'user. Make sure you followed the link in the email correctly and are '. 'user. Make sure you followed the link in the email correctly and are '.
'logged in with the user account associated with the email address.'); 'logged in with the user account associated with the email address.');
$continue = pht('Rats!'); $continue = pht('Rats!');
} else if ($email->getIsVerified()) { } else if ($email->getIsVerified() && $user->getIsEmailVerified()) {
$title = pht('Address Already Verified'); $title = pht('Address Already Verified');
$content = pht( $content = pht(
'This email address has already been verified.'); 'This email address has already been verified.');

View file

@ -19,7 +19,7 @@ final class PhabricatorMustVerifyEmailController
$email = $user->loadPrimaryEmail(); $email = $user->loadPrimaryEmail();
if ($email->getIsVerified()) { if ($user->getIsEmailVerified()) {
return id(new AphrontRedirectResponse())->setURI('/'); return id(new AphrontRedirectResponse())->setURI('/');
} }