@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at upstream/main 60 lines 1.7 kB view raw
1<?php 2 3final class PhabricatorAuthSSHKeyRevokeController 4 extends PhabricatorAuthSSHKeyController { 5 6 public function handleRequest(AphrontRequest $request) { 7 $viewer = $this->getViewer(); 8 9 $key = id(new PhabricatorAuthSSHKeyQuery()) 10 ->setViewer($viewer) 11 ->withIDs(array($request->getURIData('id'))) 12 ->requireCapabilities( 13 array( 14 PhabricatorPolicyCapability::CAN_VIEW, 15 PhabricatorPolicyCapability::CAN_EDIT, 16 )) 17 ->executeOne(); 18 if (!$key) { 19 return new Aphront404Response(); 20 } 21 22 $cancel_uri = $key->getURI(); 23 24 $token = id(new PhabricatorAuthSessionEngine())->requireHighSecuritySession( 25 $viewer, 26 $request, 27 $cancel_uri); 28 29 if ($request->isFormPost()) { 30 $xactions = array(); 31 32 $xactions[] = id(new PhabricatorAuthSSHKeyTransaction()) 33 ->setTransactionType(PhabricatorAuthSSHKeyTransaction::TYPE_DEACTIVATE) 34 ->setNewValue(true); 35 36 id(new PhabricatorAuthSSHKeyEditor()) 37 ->setActor($viewer) 38 ->setContentSourceFromRequest($request) 39 ->setContinueOnNoEffect(true) 40 ->setContinueOnMissingFields(true) 41 ->applyTransactions($key, $xactions); 42 43 return id(new AphrontRedirectResponse())->setURI($cancel_uri); 44 } 45 46 $name = phutil_tag('strong', array(), $key->getName()); 47 48 return $this->newDialog() 49 ->setTitle(pht('Revoke SSH Public Key')) 50 ->appendParagraph( 51 pht( 52 'The key "%s" will be permanently revoked, and you will no '. 53 'longer be able to use the corresponding private key to '. 54 'authenticate.', 55 $name)) 56 ->addSubmitButton(pht('Revoke Public Key')) 57 ->addCancelButton($cancel_uri); 58 } 59 60}