[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

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

   1  <?php
   2  
   3  final class PhabricatorSettingsPanelSSHKeys
   4    extends PhabricatorSettingsPanel {
   5  
   6    public function isEditableByAdministrators() {
   7      return true;
   8    }
   9  
  10    public function getPanelKey() {
  11      return 'ssh';
  12    }
  13  
  14    public function getPanelName() {
  15      return pht('SSH Public Keys');
  16    }
  17  
  18    public function getPanelGroup() {
  19      return pht('Authentication');
  20    }
  21  
  22    public function isEnabled() {
  23      return true;
  24    }
  25  
  26    public function processRequest(AphrontRequest $request) {
  27      $user = $this->getUser();
  28      $viewer = $request->getUser();
  29  
  30      $keys = id(new PhabricatorAuthSSHKeyQuery())
  31        ->setViewer($viewer)
  32        ->withObjectPHIDs(array($user->getPHID()))
  33        ->execute();
  34  
  35      $table = id(new PhabricatorAuthSSHKeyTableView())
  36        ->setUser($viewer)
  37        ->setKeys($keys)
  38        ->setCanEdit(true)
  39        ->setNoDataString("You haven't added any SSH Public Keys.");
  40  
  41      $panel = new PHUIObjectBoxView();
  42      $header = new PHUIHeaderView();
  43  
  44      $upload_icon = id(new PHUIIconView())
  45        ->setIconFont('fa-upload');
  46      $upload_button = id(new PHUIButtonView())
  47        ->setText(pht('Upload Public Key'))
  48        ->setHref('/auth/sshkey/upload/?objectPHID='.$user->getPHID())
  49        ->setWorkflow(true)
  50        ->setTag('a')
  51        ->setIcon($upload_icon);
  52  
  53      try {
  54        PhabricatorSSHKeyGenerator::assertCanGenerateKeypair();
  55        $can_generate = true;
  56      } catch (Exception $ex) {
  57        $can_generate = false;
  58      }
  59  
  60      $generate_icon = id(new PHUIIconView())
  61        ->setIconFont('fa-lock');
  62      $generate_button = id(new PHUIButtonView())
  63        ->setText(pht('Generate Keypair'))
  64        ->setHref('/auth/sshkey/generate/?objectPHID='.$user->getPHID())
  65        ->setTag('a')
  66        ->setWorkflow(true)
  67        ->setDisabled(!$can_generate)
  68        ->setIcon($generate_icon);
  69  
  70      $header->setHeader(pht('SSH Public Keys'));
  71      $header->addActionLink($generate_button);
  72      $header->addActionLink($upload_button);
  73  
  74      $panel->setHeader($header);
  75      $panel->appendChild($table);
  76  
  77      return $panel;
  78    }
  79  
  80  }


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