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:
parent
13275860b1
commit
3a035c02e7
2 changed files with 2 additions and 2 deletions
|
@ -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.');
|
||||||
|
|
|
@ -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('/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue