mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-24 14:30:56 +01:00
Recover from a broken external OAuth2 account
Summary: Currently, the external accounts page can die in a fire if an OAuth2 link is bad. Instead of exploding, just fail the specific link. Test Plan: Faked an error and got "invalid token" instead of an exception. Reviewers: btrahan, chad Reviewed By: chad Subscribers: epriestley Differential Revision: https://secure.phabricator.com/D9937
This commit is contained in:
parent
1fc324066c
commit
7ac5abb979
1 changed files with 13 additions and 2 deletions
|
@ -239,8 +239,17 @@ abstract class PhabricatorAuthProviderOAuth2
|
|||
PHUIObjectItemView $item,
|
||||
PhabricatorExternalAccount $account) {
|
||||
|
||||
// Get a valid token, possibly refreshing it.
|
||||
// Get a valid token, possibly refreshing it. If we're unable to refresh
|
||||
// it, render a message to that effect. The user may be able to repair the
|
||||
// link by manually reconnecting.
|
||||
|
||||
$is_invalid = false;
|
||||
try {
|
||||
$oauth_token = $this->getOAuthAccessToken($account);
|
||||
} catch (Exception $ex) {
|
||||
$oauth_token = null;
|
||||
$is_invalid = true;
|
||||
}
|
||||
|
||||
$item->addAttribute(pht('OAuth2 Account'));
|
||||
|
||||
|
@ -256,6 +265,8 @@ abstract class PhabricatorAuthProviderOAuth2
|
|||
pht(
|
||||
'Active OAuth Token'));
|
||||
}
|
||||
} else if ($is_invalid) {
|
||||
$item->addAttribute(pht('Invalid OAuth Access Token'));
|
||||
} else {
|
||||
$item->addAttribute(pht('No OAuth Access Token'));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue