public function willRenderLinkedAccount(PhabricatorUser $viewer, PHUIObjectItemView $item, PhabricatorExternalAccount $account)
 {
     // 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'));
     if ($oauth_token) {
         $oauth_expires = $account->getProperty('oauth.token.access.expires');
         if ($oauth_expires) {
             $item->addAttribute(pht('Active OAuth Token (Expires: %s)', phabricator_datetime($oauth_expires, $viewer)));
         } else {
             $item->addAttribute(pht('Active OAuth Token'));
         }
     } else {
         if ($is_invalid) {
             $item->addAttribute(pht('Invalid OAuth Access Token'));
         } else {
             $item->addAttribute(pht('No OAuth Access Token'));
         }
     }
     parent::willRenderLinkedAccount($viewer, $item, $account);
 }
 public function willRenderLinkedAccount(PhabricatorUser $viewer, PHUIObjectItemView $item, PhabricatorExternalAccount $account)
 {
     $item->addAttribute(pht('OAuth1 Account'));
     parent::willRenderLinkedAccount($viewer, $item, $account);
 }