getUser()->getIsMailingList()) { return false; } return true; } public function processRequest(AphrontRequest $request) { $user = $this->getUser(); $viewer = $request->getUser(); $keys = id(new PhabricatorAuthSSHKeyQuery()) ->setViewer($viewer) ->withObjectPHIDs(array($user->getPHID())) ->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(); $upload_button = id(new PHUIButtonView()) ->setText(pht('Upload Public Key')) ->setHref('/auth/sshkey/upload/?objectPHID='.$user->getPHID()) ->setWorkflow(true) ->setTag('a') ->setIcon('fa-upload'); try { PhabricatorSSHKeyGenerator::assertCanGenerateKeypair(); $can_generate = true; } catch (Exception $ex) { $can_generate = false; } $generate_button = id(new PHUIButtonView()) ->setText(pht('Generate Keypair')) ->setHref('/auth/sshkey/generate/?objectPHID='.$user->getPHID()) ->setTag('a') ->setWorkflow(true) ->setDisabled(!$can_generate) ->setIcon('fa-lock'); $header->setHeader(pht('SSH Public Keys')); $header->addActionLink($generate_button); $header->addActionLink($upload_button); $panel->setHeader($header); $panel->setTable($table); return $panel; } }