mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-26 13:39:08 +01:00
63 lines
1.6 KiB
PHP
63 lines
1.6 KiB
PHP
|
<?php
|
||
|
|
||
|
final class PhabricatorAuthManagementUntrustOAuthClientWorkflow
|
||
|
extends PhabricatorAuthManagementWorkflow {
|
||
|
|
||
|
protected function didConstruct() {
|
||
|
$this
|
||
|
->setName('untrust-oauth-client')
|
||
|
->setExamples('**untrust-oauth-client** [--id client_id]')
|
||
|
->setSynopsis(
|
||
|
pht(
|
||
|
'Set Phabricator to not trust an OAuth client. Phabricator '.
|
||
|
'redirects to trusted OAuth clients that users have authorized '.
|
||
|
'without user intervention.'))
|
||
|
->setArguments(
|
||
|
array(
|
||
|
array(
|
||
|
'name' => 'id',
|
||
|
'param' => 'id',
|
||
|
'help' => pht('The id of the OAuth client.'),
|
||
|
),));
|
||
|
}
|
||
|
|
||
|
public function execute(PhutilArgumentParser $args) {
|
||
|
$id = $args->getArg('id');
|
||
|
|
||
|
if (!$id) {
|
||
|
throw new PhutilArgumentUsageException(
|
||
|
pht(
|
||
|
'Specify an OAuth client id with --id.'));
|
||
|
}
|
||
|
|
||
|
$client = id(new PhabricatorOAuthServerClientQuery())
|
||
|
->setViewer($this->getViewer())
|
||
|
->withIDs(array($id))
|
||
|
->executeOne();
|
||
|
|
||
|
if (!$client) {
|
||
|
throw new PhutilArgumentUsageException(
|
||
|
pht(
|
||
|
'Failed to find an OAuth client with id %s.', $id));
|
||
|
}
|
||
|
|
||
|
if (!$client->getIsTrusted()) {
|
||
|
throw new PhutilArgumentUsageException(
|
||
|
pht(
|
||
|
'Phabricator already does not trust OAuth client "%s".',
|
||
|
$client->getName()));
|
||
|
}
|
||
|
|
||
|
$client->setIsTrusted(0);
|
||
|
$client->save();
|
||
|
|
||
|
$console = PhutilConsole::getConsole();
|
||
|
$console->writeOut(
|
||
|
"%s\n",
|
||
|
pht(
|
||
|
'Updated; Phabricator does not trust OAuth client %s.',
|
||
|
$client->getName()));
|
||
|
}
|
||
|
|
||
|
}
|