private function buildSSHKeysTable(AlmanacDevice $device)
 {
     $viewer = $this->getViewer();
     $id = $device->getID();
     $device_phid = $device->getPHID();
     $can_edit = PhabricatorPolicyFilter::hasCapability($viewer, $device, PhabricatorPolicyCapability::CAN_EDIT);
     $keys = id(new PhabricatorAuthSSHKeyQuery())->setViewer($viewer)->withObjectPHIDs(array($device_phid))->withIsActive(true)->execute();
     $table = id(new PhabricatorAuthSSHKeyTableView())->setUser($viewer)->setKeys($keys)->setCanEdit($can_edit)->setShowID(true)->setShowTrusted(true)->setNoDataString(pht('This device has no associated SSH public keys.'));
     $menu_button = PhabricatorAuthSSHKeyTableView::newKeyActionsMenu($viewer, $device);
     $header = id(new PHUIHeaderView())->setHeader(pht('SSH Public Keys'))->addActionLink($menu_button);
     return id(new PHUIObjectBoxView())->setHeader($header)->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)->setTable($table);
 }
 public function processRequest(AphrontRequest $request)
 {
     $user = $this->getUser();
     $viewer = $request->getUser();
     $keys = id(new PhabricatorAuthSSHKeyQuery())->setViewer($viewer)->withObjectPHIDs(array($user->getPHID()))->withIsActive(true)->execute();
     $table = id(new PhabricatorAuthSSHKeyTableView())->setUser($viewer)->setKeys($keys)->setCanEdit(true)->setNoDataString(pht("You haven't added any SSH Public Keys."));
     $panel = new PHUIObjectBoxView();
     $header = new PHUIHeaderView();
     $ssh_actions = PhabricatorAuthSSHKeyTableView::newKeyActionsMenu($viewer, $user);
     $header->setHeader(pht('SSH Public Keys'));
     $header->addActionLink($ssh_actions);
     $panel->setHeader($header);
     $panel->setTable($table);
     return $panel;
 }