[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/settings/panel/ -> PhabricatorSettingsPanelTokens.php (source)

   1  <?php
   2  
   3  final class PhabricatorSettingsPanelTokens
   4    extends PhabricatorSettingsPanel {
   5  
   6    public function getPanelKey() {
   7      return 'tokens';
   8    }
   9  
  10    public function getPanelName() {
  11      return pht('Temporary Tokens');
  12    }
  13  
  14    public function getPanelGroup() {
  15      return pht('Sessions and Logs');
  16    }
  17  
  18    public function isEnabled() {
  19      return true;
  20    }
  21  
  22    public function processRequest(AphrontRequest $request) {
  23      $viewer = $request->getUser();
  24  
  25      $tokens = id(new PhabricatorAuthTemporaryTokenQuery())
  26        ->setViewer($viewer)
  27        ->withObjectPHIDs(array($viewer->getPHID()))
  28        ->execute();
  29  
  30      $rows = array();
  31      foreach ($tokens as $token) {
  32  
  33        if ($token->isRevocable()) {
  34          $button = javelin_tag(
  35            'a',
  36            array(
  37              'href' => '/auth/token/revoke/'.$token->getID().'/',
  38              'class' => 'small grey button',
  39              'sigil' => 'workflow',
  40            ),
  41            pht('Revoke'));
  42        } else {
  43          $button = javelin_tag(
  44            'a',
  45            array(
  46              'class' => 'small grey button disabled',
  47            ),
  48            pht('Revoke'));
  49        }
  50  
  51        if ($token->getTokenExpires() >= time()) {
  52          $expiry = phabricator_datetime($token->getTokenExpires(), $viewer);
  53        } else {
  54          $expiry = pht('Expired');
  55        }
  56  
  57        $rows[] = array(
  58          $token->getTokenReadableTypeName(),
  59          $expiry,
  60          $button,
  61        );
  62      }
  63  
  64      $table = new AphrontTableView($rows);
  65      $table->setNoDataString(pht("You don't have any active tokens."));
  66      $table->setHeaders(
  67        array(
  68          pht('Type'),
  69          pht('Expires'),
  70          pht(''),
  71        ));
  72      $table->setColumnClasses(
  73        array(
  74          'wide',
  75          'right',
  76          'action',
  77        ));
  78  
  79  
  80      $terminate_icon = id(new PHUIIconView())
  81        ->setIconFont('fa-exclamation-triangle');
  82      $terminate_button = id(new PHUIButtonView())
  83        ->setText(pht('Revoke All'))
  84        ->setHref('/auth/token/revoke/all/')
  85        ->setTag('a')
  86        ->setWorkflow(true)
  87        ->setIcon($terminate_icon);
  88  
  89      $header = id(new PHUIHeaderView())
  90        ->setHeader(pht('Temporary Tokens'))
  91        ->addActionLink($terminate_button);
  92  
  93      $panel = id(new PHUIObjectBoxView())
  94        ->setHeader($header)
  95        ->appendChild($table);
  96  
  97      return $panel;
  98    }
  99  
 100  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1