mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-13 15:28:35 +01:00
36158dbdc0
Summary: Mostly for consistency, we're not using other forms of icons and this makes all classes that use an icon call it in the same way. Test Plan: tested uiexamples, lots of other random pages. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D15125
79 lines
1.9 KiB
PHP
79 lines
1.9 KiB
PHP
<?php
|
|
|
|
final class PhabricatorSSHKeysSettingsPanel extends PhabricatorSettingsPanel {
|
|
|
|
public function isEditableByAdministrators() {
|
|
return true;
|
|
}
|
|
|
|
public function getPanelKey() {
|
|
return 'ssh';
|
|
}
|
|
|
|
public function getPanelName() {
|
|
return pht('SSH Public Keys');
|
|
}
|
|
|
|
public function getPanelGroup() {
|
|
return pht('Authentication');
|
|
}
|
|
|
|
public function isEnabled() {
|
|
if ($this->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;
|
|
}
|
|
|
|
}
|