Path: blob/master/src/applications/conduit/controller/PhabricatorConduitTokenTerminateController.php
12256 views
<?php12final class PhabricatorConduitTokenTerminateController3extends PhabricatorConduitController {45public function handleRequest(AphrontRequest $request) {6$viewer = $request->getViewer();7$object_phid = $request->getStr('objectPHID');8$id = $request->getURIData('id');910if ($id) {11$token = id(new PhabricatorConduitTokenQuery())12->setViewer($viewer)13->withIDs(array($id))14->withExpired(false)15->requireCapabilities(16array(17PhabricatorPolicyCapability::CAN_VIEW,18PhabricatorPolicyCapability::CAN_EDIT,19))20->executeOne();21if (!$token) {22return new Aphront404Response();23}2425$tokens = array($token);26$object_phid = $token->getObjectPHID();2728$title = pht('Terminate API Token');29$body = pht(30'Really terminate this token? Any system using this token '.31'will no longer be able to make API requests.');32$submit_button = pht('Terminate Token');33} else {34$tokens = id(new PhabricatorConduitTokenQuery())35->setViewer($viewer)36->withObjectPHIDs(array($object_phid))37->withExpired(false)38->requireCapabilities(39array(40PhabricatorPolicyCapability::CAN_VIEW,41PhabricatorPolicyCapability::CAN_EDIT,42))43->execute();4445$title = pht('Terminate API Tokens');46$body = pht(47'Really terminate all active API tokens? Any systems using these '.48'tokens will no longer be able to make API requests.');49$submit_button = pht('Terminate Tokens');50}5152if ($object_phid != $viewer->getPHID()) {53$object = id(new PhabricatorObjectQuery())54->setViewer($viewer)55->withPHIDs(array($object_phid))56->executeOne();57if (!$object) {58return new Aphront404Response();59}60} else {61$object = $viewer;62}6364$panel_uri = id(new PhabricatorConduitTokensSettingsPanel())65->setViewer($viewer)66->setUser($object)67->getPanelURI();6869id(new PhabricatorAuthSessionEngine())->requireHighSecuritySession(70$viewer,71$request,72$panel_uri);7374if (!$tokens) {75return $this->newDialog()76->setTitle(pht('No Tokens to Terminate'))77->appendParagraph(78pht('There are no API tokens to terminate.'))79->addCancelButton($panel_uri);80}8182if ($request->isFormPost()) {83foreach ($tokens as $token) {84$token85->setExpires(PhabricatorTime::getNow() - 60)86->save();87}88return id(new AphrontRedirectResponse())->setURI($panel_uri);89}9091return $this->newDialog()92->setTitle($title)93->addHiddenInput('objectPHID', $object_phid)94->appendParagraph($body)95->addSubmitButton($submit_button)96->addCancelButton($panel_uri);97}9899}100101102