3
final class PhabricatorConduitTokenEditController
4
extends PhabricatorConduitController {
6
public function handleRequest(AphrontRequest $request) {
7
$viewer = $request->getViewer();
9
$id = $request->getURIData('id');
11
$token = id(new PhabricatorConduitTokenQuery())
15
->requireCapabilities(
17
PhabricatorPolicyCapability::CAN_VIEW,
18
PhabricatorPolicyCapability::CAN_EDIT,
22
return new Aphront404Response();
25
$object = $token->getObject();
28
$title = pht('View API Token');
30
$object = id(new PhabricatorObjectQuery())
32
->withPHIDs(array($request->getStr('objectPHID')))
33
->requireCapabilities(
35
PhabricatorPolicyCapability::CAN_VIEW,
36
PhabricatorPolicyCapability::CAN_EDIT,
40
return new Aphront404Response();
43
$token = PhabricatorConduitToken::initializeNewToken(
45
PhabricatorConduitToken::TYPE_STANDARD);
48
$title = pht('Generate API Token');
49
$submit_button = pht('Generate Token');
52
if ($viewer->getPHID() == $object->getPHID()) {
53
$panel_uri = '/settings/panel/apitokens/';
55
$panel_uri = '/settings/'.$object->getID().'/panel/apitokens/';
58
id(new PhabricatorAuthSessionEngine())->requireHighSecuritySession(
63
if ($request->isFormPost()) {
67
$token_uri = '/conduit/token/edit/'.$token->getID().'/';
69
$token_uri = $panel_uri;
72
return id(new AphrontRedirectResponse())->setURI($token_uri);
75
$dialog = $this->newDialog()
77
->addHiddenInput('objectPHID', $object->getPHID());
81
->appendParagraph(pht('Generate a new API token?'))
82
->addSubmitButton($submit_button)
83
->addCancelButton($panel_uri);
85
$form = id(new AphrontFormView())
88
if ($token->getTokenType() === PhabricatorConduitToken::TYPE_CLUSTER) {
91
'This token is automatically generated by Phabricator, and used '.
92
'to make requests between nodes in a Phabricator cluster. You '.
93
'can not use this token in external applications.'));
96
id(new AphrontFormTextControl())
97
->setLabel(pht('Token'))
98
->setValue($token->getToken()));
103
->addCancelButton($panel_uri, pht('Done'));