mirror of
https://we.phorge.it/source/phorge.git
synced 2025-04-02 15:38:18 +02:00
Summary: Ref T13043. Adds CLI support for revoking SSH keys. Also retargets UI language from "Deactivate" to "Revoke" to make it more clear that this is a one-way operation. This operation is already correctly implemented as a "Revoke" operation. Test Plan: Used `bin/auth revoke --type ssh` to revoke keys, verified they became revoked (with proper transactions) in the UI. Revoked keys from the web UI flow. Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13043 Differential Revision: https://secure.phabricator.com/D18893
60 lines
1.7 KiB
PHP
60 lines
1.7 KiB
PHP
<?php
|
|
|
|
final class PhabricatorAuthSSHKeyRevokeController
|
|
extends PhabricatorAuthSSHKeyController {
|
|
|
|
public function handleRequest(AphrontRequest $request) {
|
|
$viewer = $this->getViewer();
|
|
|
|
$key = id(new PhabricatorAuthSSHKeyQuery())
|
|
->setViewer($viewer)
|
|
->withIDs(array($request->getURIData('id')))
|
|
->requireCapabilities(
|
|
array(
|
|
PhabricatorPolicyCapability::CAN_VIEW,
|
|
PhabricatorPolicyCapability::CAN_EDIT,
|
|
))
|
|
->executeOne();
|
|
if (!$key) {
|
|
return new Aphront404Response();
|
|
}
|
|
|
|
$cancel_uri = $key->getURI();
|
|
|
|
$token = id(new PhabricatorAuthSessionEngine())->requireHighSecuritySession(
|
|
$viewer,
|
|
$request,
|
|
$cancel_uri);
|
|
|
|
if ($request->isFormPost()) {
|
|
$xactions = array();
|
|
|
|
$xactions[] = id(new PhabricatorAuthSSHKeyTransaction())
|
|
->setTransactionType(PhabricatorAuthSSHKeyTransaction::TYPE_DEACTIVATE)
|
|
->setNewValue(true);
|
|
|
|
id(new PhabricatorAuthSSHKeyEditor())
|
|
->setActor($viewer)
|
|
->setContentSourceFromRequest($request)
|
|
->setContinueOnNoEffect(true)
|
|
->setContinueOnMissingFields(true)
|
|
->applyTransactions($key, $xactions);
|
|
|
|
return id(new AphrontRedirectResponse())->setURI($cancel_uri);
|
|
}
|
|
|
|
$name = phutil_tag('strong', array(), $key->getName());
|
|
|
|
return $this->newDialog()
|
|
->setTitle(pht('Revoke SSH Public Key'))
|
|
->appendParagraph(
|
|
pht(
|
|
'The key "%s" will be permanently revoked, and you will no '.
|
|
'longer be able to use the corresponding private key to '.
|
|
'authenticate.',
|
|
$name))
|
|
->addSubmitButton(pht('Revoke Public Key'))
|
|
->addCancelButton($cancel_uri);
|
|
}
|
|
|
|
}
|