Extend all "ManagementWorkflow" classes from a base class

Summary:
Ref T2015. Not directly related to Drydock, but I've wanted to do this for a bit.

Introduce a common base class for all the workflows in the scripts in `bin/*`. This slightly reduces code duplication by moving `isExecutable()` to the base, but also provides `getViewer()`. This is a little nicer than `PhabricatorUser::getOmnipotentUser()` and gives us a layer of indirection if we ever want to introduce more general viewer mechanisms in scripts.

Test Plan: Lint; ran some of the scripts.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T2015

Differential Revision: https://secure.phabricator.com/D7838
This commit is contained in:
epriestley
2013-12-27 13:15:40 -08:00
parent 1ba52fac86
commit e397103bf2
40 changed files with 77 additions and 138 deletions

View File

@@ -1560,6 +1560,7 @@ phutil_register_library_map(array(
'PhabricatorMainMenuIconView' => 'view/page/menu/PhabricatorMainMenuIconView.php', 'PhabricatorMainMenuIconView' => 'view/page/menu/PhabricatorMainMenuIconView.php',
'PhabricatorMainMenuSearchView' => 'view/page/menu/PhabricatorMainMenuSearchView.php', 'PhabricatorMainMenuSearchView' => 'view/page/menu/PhabricatorMainMenuSearchView.php',
'PhabricatorMainMenuView' => 'view/page/menu/PhabricatorMainMenuView.php', 'PhabricatorMainMenuView' => 'view/page/menu/PhabricatorMainMenuView.php',
'PhabricatorManagementWorkflow' => 'infrastructure/management/PhabricatorManagementWorkflow.php',
'PhabricatorManiphestConfigOptions' => 'applications/maniphest/config/PhabricatorManiphestConfigOptions.php', 'PhabricatorManiphestConfigOptions' => 'applications/maniphest/config/PhabricatorManiphestConfigOptions.php',
'PhabricatorManiphestTaskTestDataGenerator' => 'applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php', 'PhabricatorManiphestTaskTestDataGenerator' => 'applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php',
'PhabricatorMarkupCache' => 'applications/cache/storage/PhabricatorMarkupCache.php', 'PhabricatorMarkupCache' => 'applications/cache/storage/PhabricatorMarkupCache.php',
@@ -3020,7 +3021,7 @@ phutil_register_library_map(array(
'DivinerReturnTableView' => 'AphrontTagView', 'DivinerReturnTableView' => 'AphrontTagView',
'DivinerSectionView' => 'AphrontTagView', 'DivinerSectionView' => 'AphrontTagView',
'DivinerStaticPublisher' => 'DivinerPublisher', 'DivinerStaticPublisher' => 'DivinerPublisher',
'DivinerWorkflow' => 'PhutilArgumentWorkflow', 'DivinerWorkflow' => 'PhabricatorManagementWorkflow',
'DoorkeeperBridge' => 'Phobject', 'DoorkeeperBridge' => 'Phobject',
'DoorkeeperBridgeAsana' => 'DoorkeeperBridge', 'DoorkeeperBridgeAsana' => 'DoorkeeperBridge',
'DoorkeeperBridgeJIRA' => 'DoorkeeperBridge', 'DoorkeeperBridgeJIRA' => 'DoorkeeperBridge',
@@ -3099,7 +3100,7 @@ phutil_register_library_map(array(
'DrydockManagementCreateResourceWorkflow' => 'DrydockManagementWorkflow', 'DrydockManagementCreateResourceWorkflow' => 'DrydockManagementWorkflow',
'DrydockManagementLeaseWorkflow' => 'DrydockManagementWorkflow', 'DrydockManagementLeaseWorkflow' => 'DrydockManagementWorkflow',
'DrydockManagementReleaseWorkflow' => 'DrydockManagementWorkflow', 'DrydockManagementReleaseWorkflow' => 'DrydockManagementWorkflow',
'DrydockManagementWorkflow' => 'PhutilArgumentWorkflow', 'DrydockManagementWorkflow' => 'PhabricatorManagementWorkflow',
'DrydockPHIDTypeBlueprint' => 'PhabricatorPHIDType', 'DrydockPHIDTypeBlueprint' => 'PhabricatorPHIDType',
'DrydockPHIDTypeLease' => 'PhabricatorPHIDType', 'DrydockPHIDTypeLease' => 'PhabricatorPHIDType',
'DrydockPHIDTypeResource' => 'PhabricatorPHIDType', 'DrydockPHIDTypeResource' => 'PhabricatorPHIDType',
@@ -3197,7 +3198,7 @@ phutil_register_library_map(array(
'HarbormasterDAO' => 'PhabricatorLiskDAO', 'HarbormasterDAO' => 'PhabricatorLiskDAO',
'HarbormasterHTTPRequestBuildStepImplementation' => 'VariableBuildStepImplementation', 'HarbormasterHTTPRequestBuildStepImplementation' => 'VariableBuildStepImplementation',
'HarbormasterManagementBuildWorkflow' => 'HarbormasterManagementWorkflow', 'HarbormasterManagementBuildWorkflow' => 'HarbormasterManagementWorkflow',
'HarbormasterManagementWorkflow' => 'PhutilArgumentWorkflow', 'HarbormasterManagementWorkflow' => 'PhabricatorManagementWorkflow',
'HarbormasterObject' => 'HarbormasterDAO', 'HarbormasterObject' => 'HarbormasterDAO',
'HarbormasterPHIDTypeBuild' => 'PhabricatorPHIDType', 'HarbormasterPHIDTypeBuild' => 'PhabricatorPHIDType',
'HarbormasterPHIDTypeBuildItem' => 'PhabricatorPHIDType', 'HarbormasterPHIDTypeBuildItem' => 'PhabricatorPHIDType',
@@ -3672,7 +3673,7 @@ phutil_register_library_map(array(
'PhabricatorAuditListView' => 'AphrontView', 'PhabricatorAuditListView' => 'AphrontView',
'PhabricatorAuditMailReceiver' => 'PhabricatorObjectMailReceiver', 'PhabricatorAuditMailReceiver' => 'PhabricatorObjectMailReceiver',
'PhabricatorAuditManagementDeleteWorkflow' => 'PhabricatorAuditManagementWorkflow', 'PhabricatorAuditManagementDeleteWorkflow' => 'PhabricatorAuditManagementWorkflow',
'PhabricatorAuditManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorAuditManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorAuditPreviewController' => 'PhabricatorAuditController', 'PhabricatorAuditPreviewController' => 'PhabricatorAuditController',
'PhabricatorAuditReplyHandler' => 'PhabricatorMailReplyHandler', 'PhabricatorAuditReplyHandler' => 'PhabricatorMailReplyHandler',
'PhabricatorAuthAccountView' => 'AphrontView', 'PhabricatorAuthAccountView' => 'AphrontView',
@@ -3687,7 +3688,7 @@ phutil_register_library_map(array(
'PhabricatorAuthManagementLDAPWorkflow' => 'PhabricatorAuthManagementWorkflow', 'PhabricatorAuthManagementLDAPWorkflow' => 'PhabricatorAuthManagementWorkflow',
'PhabricatorAuthManagementRecoverWorkflow' => 'PhabricatorAuthManagementWorkflow', 'PhabricatorAuthManagementRecoverWorkflow' => 'PhabricatorAuthManagementWorkflow',
'PhabricatorAuthManagementRefreshWorkflow' => 'PhabricatorAuthManagementWorkflow', 'PhabricatorAuthManagementRefreshWorkflow' => 'PhabricatorAuthManagementWorkflow',
'PhabricatorAuthManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorAuthManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorAuthNeedsApprovalController' => 'PhabricatorAuthController', 'PhabricatorAuthNeedsApprovalController' => 'PhabricatorAuthController',
'PhabricatorAuthNewController' => 'PhabricatorAuthProviderConfigController', 'PhabricatorAuthNewController' => 'PhabricatorAuthProviderConfigController',
'PhabricatorAuthOldOAuthRedirectController' => 'PhabricatorAuthController', 'PhabricatorAuthOldOAuthRedirectController' => 'PhabricatorAuthController',
@@ -3740,7 +3741,7 @@ phutil_register_library_map(array(
'PhabricatorBusyExample' => 'PhabricatorUIExample', 'PhabricatorBusyExample' => 'PhabricatorUIExample',
'PhabricatorCacheDAO' => 'PhabricatorLiskDAO', 'PhabricatorCacheDAO' => 'PhabricatorLiskDAO',
'PhabricatorCacheManagementPurgeWorkflow' => 'PhabricatorSearchManagementWorkflow', 'PhabricatorCacheManagementPurgeWorkflow' => 'PhabricatorSearchManagementWorkflow',
'PhabricatorCacheManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorCacheManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorCalendarBrowseController' => 'PhabricatorCalendarController', 'PhabricatorCalendarBrowseController' => 'PhabricatorCalendarController',
'PhabricatorCalendarController' => 'PhabricatorController', 'PhabricatorCalendarController' => 'PhabricatorController',
'PhabricatorCalendarDAO' => 'PhabricatorLiskDAO', 'PhabricatorCalendarDAO' => 'PhabricatorLiskDAO',
@@ -3815,7 +3816,7 @@ phutil_register_library_map(array(
'PhabricatorConfigManagementGetWorkflow' => 'PhabricatorConfigManagementWorkflow', 'PhabricatorConfigManagementGetWorkflow' => 'PhabricatorConfigManagementWorkflow',
'PhabricatorConfigManagementListWorkflow' => 'PhabricatorConfigManagementWorkflow', 'PhabricatorConfigManagementListWorkflow' => 'PhabricatorConfigManagementWorkflow',
'PhabricatorConfigManagementSetWorkflow' => 'PhabricatorConfigManagementWorkflow', 'PhabricatorConfigManagementSetWorkflow' => 'PhabricatorConfigManagementWorkflow',
'PhabricatorConfigManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorConfigManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorConfigOption' => 'PhabricatorConfigOption' =>
array( array(
0 => 'Phobject', 0 => 'Phobject',
@@ -3892,7 +3893,7 @@ phutil_register_library_map(array(
'PhabricatorDaemonManagementStartWorkflow' => 'PhabricatorDaemonManagementWorkflow', 'PhabricatorDaemonManagementStartWorkflow' => 'PhabricatorDaemonManagementWorkflow',
'PhabricatorDaemonManagementStatusWorkflow' => 'PhabricatorDaemonManagementWorkflow', 'PhabricatorDaemonManagementStatusWorkflow' => 'PhabricatorDaemonManagementWorkflow',
'PhabricatorDaemonManagementStopWorkflow' => 'PhabricatorDaemonManagementWorkflow', 'PhabricatorDaemonManagementStopWorkflow' => 'PhabricatorDaemonManagementWorkflow',
'PhabricatorDaemonManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorDaemonManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorDataNotAttachedException' => 'Exception', 'PhabricatorDataNotAttachedException' => 'Exception',
'PhabricatorDebugController' => 'PhabricatorController', 'PhabricatorDebugController' => 'PhabricatorController',
'PhabricatorDefaultFileStorageEngineSelector' => 'PhabricatorFileStorageEngineSelector', 'PhabricatorDefaultFileStorageEngineSelector' => 'PhabricatorFileStorageEngineSelector',
@@ -3946,7 +3947,7 @@ phutil_register_library_map(array(
'PhabricatorFactManagementDestroyWorkflow' => 'PhabricatorFactManagementWorkflow', 'PhabricatorFactManagementDestroyWorkflow' => 'PhabricatorFactManagementWorkflow',
'PhabricatorFactManagementListWorkflow' => 'PhabricatorFactManagementWorkflow', 'PhabricatorFactManagementListWorkflow' => 'PhabricatorFactManagementWorkflow',
'PhabricatorFactManagementStatusWorkflow' => 'PhabricatorFactManagementWorkflow', 'PhabricatorFactManagementStatusWorkflow' => 'PhabricatorFactManagementWorkflow',
'PhabricatorFactManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorFactManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorFactRaw' => 'PhabricatorFactDAO', 'PhabricatorFactRaw' => 'PhabricatorFactDAO',
'PhabricatorFactSimpleSpec' => 'PhabricatorFactSpec', 'PhabricatorFactSimpleSpec' => 'PhabricatorFactSpec',
'PhabricatorFactUpdateIterator' => 'PhutilBufferedIterator', 'PhabricatorFactUpdateIterator' => 'PhutilBufferedIterator',
@@ -3960,7 +3961,7 @@ phutil_register_library_map(array(
1 => 'PhabricatorApplicationSearchResultsControllerInterface', 1 => 'PhabricatorApplicationSearchResultsControllerInterface',
), ),
'PhabricatorFeedManagementRepublishWorkflow' => 'PhabricatorFeedManagementWorkflow', 'PhabricatorFeedManagementRepublishWorkflow' => 'PhabricatorFeedManagementWorkflow',
'PhabricatorFeedManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorFeedManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorFeedPublicStreamController' => 'PhabricatorFeedController', 'PhabricatorFeedPublicStreamController' => 'PhabricatorFeedController',
'PhabricatorFeedQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhabricatorFeedQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhabricatorFeedSearchEngine' => 'PhabricatorApplicationSearchEngine', 'PhabricatorFeedSearchEngine' => 'PhabricatorApplicationSearchEngine',
@@ -4029,7 +4030,7 @@ phutil_register_library_map(array(
'PhabricatorFilesManagementMigrateWorkflow' => 'PhabricatorFilesManagementWorkflow', 'PhabricatorFilesManagementMigrateWorkflow' => 'PhabricatorFilesManagementWorkflow',
'PhabricatorFilesManagementPurgeWorkflow' => 'PhabricatorFilesManagementWorkflow', 'PhabricatorFilesManagementPurgeWorkflow' => 'PhabricatorFilesManagementWorkflow',
'PhabricatorFilesManagementRebuildWorkflow' => 'PhabricatorFilesManagementWorkflow', 'PhabricatorFilesManagementRebuildWorkflow' => 'PhabricatorFilesManagementWorkflow',
'PhabricatorFilesManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorFilesManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorFlag' => 'PhabricatorFlag' =>
array( array(
0 => 'PhabricatorFlagDAO', 0 => 'PhabricatorFlagDAO',
@@ -4077,7 +4078,7 @@ phutil_register_library_map(array(
'PhabricatorLegalpadPHIDTypeDocument' => 'PhabricatorPHIDType', 'PhabricatorLegalpadPHIDTypeDocument' => 'PhabricatorPHIDType',
'PhabricatorLintEngine' => 'PhutilLintEngine', 'PhabricatorLintEngine' => 'PhutilLintEngine',
'PhabricatorLipsumGenerateWorkflow' => 'PhabricatorLipsumManagementWorkflow', 'PhabricatorLipsumGenerateWorkflow' => 'PhabricatorLipsumManagementWorkflow',
'PhabricatorLipsumManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorLipsumManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorLipsumMondrianArtist' => 'PhabricatorLipsumArtist', 'PhabricatorLipsumMondrianArtist' => 'PhabricatorLipsumArtist',
'PhabricatorLiskDAO' => 'LiskDAO', 'PhabricatorLiskDAO' => 'LiskDAO',
'PhabricatorLocalDiskFileStorageEngine' => 'PhabricatorFileStorageEngine', 'PhabricatorLocalDiskFileStorageEngine' => 'PhabricatorFileStorageEngine',
@@ -4119,7 +4120,7 @@ phutil_register_library_map(array(
'PhabricatorMailManagementSendTestWorkflow' => 'PhabricatorSearchManagementWorkflow', 'PhabricatorMailManagementSendTestWorkflow' => 'PhabricatorSearchManagementWorkflow',
'PhabricatorMailManagementShowInboundWorkflow' => 'PhabricatorSearchManagementWorkflow', 'PhabricatorMailManagementShowInboundWorkflow' => 'PhabricatorSearchManagementWorkflow',
'PhabricatorMailManagementShowOutboundWorkflow' => 'PhabricatorSearchManagementWorkflow', 'PhabricatorMailManagementShowOutboundWorkflow' => 'PhabricatorSearchManagementWorkflow',
'PhabricatorMailManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorMailManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorMailReceiverTestCase' => 'PhabricatorTestCase', 'PhabricatorMailReceiverTestCase' => 'PhabricatorTestCase',
'PhabricatorMailingListPHIDTypeList' => 'PhabricatorPHIDType', 'PhabricatorMailingListPHIDTypeList' => 'PhabricatorPHIDType',
'PhabricatorMailingListQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhabricatorMailingListQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
@@ -4135,6 +4136,7 @@ phutil_register_library_map(array(
'PhabricatorMainMenuIconView' => 'AphrontView', 'PhabricatorMainMenuIconView' => 'AphrontView',
'PhabricatorMainMenuSearchView' => 'AphrontView', 'PhabricatorMainMenuSearchView' => 'AphrontView',
'PhabricatorMainMenuView' => 'AphrontView', 'PhabricatorMainMenuView' => 'AphrontView',
'PhabricatorManagementWorkflow' => 'PhutilArgumentWorkflow',
'PhabricatorManiphestConfigOptions' => 'PhabricatorApplicationConfigOptions', 'PhabricatorManiphestConfigOptions' => 'PhabricatorApplicationConfigOptions',
'PhabricatorManiphestTaskTestDataGenerator' => 'PhabricatorTestDataGenerator', 'PhabricatorManiphestTaskTestDataGenerator' => 'PhabricatorTestDataGenerator',
'PhabricatorMarkupCache' => 'PhabricatorCacheDAO', 'PhabricatorMarkupCache' => 'PhabricatorCacheDAO',
@@ -4305,7 +4307,7 @@ phutil_register_library_map(array(
'PhabricatorPolicyInterface' => 'PhabricatorPHIDInterface', 'PhabricatorPolicyInterface' => 'PhabricatorPHIDInterface',
'PhabricatorPolicyManagementShowWorkflow' => 'PhabricatorPolicyManagementWorkflow', 'PhabricatorPolicyManagementShowWorkflow' => 'PhabricatorPolicyManagementWorkflow',
'PhabricatorPolicyManagementUnlockWorkflow' => 'PhabricatorPolicyManagementWorkflow', 'PhabricatorPolicyManagementUnlockWorkflow' => 'PhabricatorPolicyManagementWorkflow',
'PhabricatorPolicyManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorPolicyManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorPolicyPHIDTypePolicy' => 'PhabricatorPHIDType', 'PhabricatorPolicyPHIDTypePolicy' => 'PhabricatorPHIDType',
'PhabricatorPolicyQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhabricatorPolicyQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhabricatorPolicyRuleAdministrators' => 'PhabricatorPolicyRule', 'PhabricatorPolicyRuleAdministrators' => 'PhabricatorPolicyRule',
@@ -4421,7 +4423,7 @@ phutil_register_library_map(array(
'PhabricatorRepositoryManagementLookupUsersWorkflow' => 'PhabricatorRepositoryManagementWorkflow', 'PhabricatorRepositoryManagementLookupUsersWorkflow' => 'PhabricatorRepositoryManagementWorkflow',
'PhabricatorRepositoryManagementMarkImportedWorkflow' => 'PhabricatorRepositoryManagementWorkflow', 'PhabricatorRepositoryManagementMarkImportedWorkflow' => 'PhabricatorRepositoryManagementWorkflow',
'PhabricatorRepositoryManagementPullWorkflow' => 'PhabricatorRepositoryManagementWorkflow', 'PhabricatorRepositoryManagementPullWorkflow' => 'PhabricatorRepositoryManagementWorkflow',
'PhabricatorRepositoryManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorRepositoryManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorRepositoryMercurialCommitChangeParserWorker' => 'PhabricatorRepositoryCommitChangeParserWorker', 'PhabricatorRepositoryMercurialCommitChangeParserWorker' => 'PhabricatorRepositoryCommitChangeParserWorker',
'PhabricatorRepositoryMercurialCommitMessageParserWorker' => 'PhabricatorRepositoryCommitMessageParserWorker', 'PhabricatorRepositoryMercurialCommitMessageParserWorker' => 'PhabricatorRepositoryCommitMessageParserWorker',
'PhabricatorRepositoryMirror' => 'PhabricatorRepositoryMirror' =>
@@ -4459,7 +4461,7 @@ phutil_register_library_map(array(
'PhabricatorS3FileStorageEngine' => 'PhabricatorFileStorageEngine', 'PhabricatorS3FileStorageEngine' => 'PhabricatorFileStorageEngine',
'PhabricatorSSHLog' => 'Phobject', 'PhabricatorSSHLog' => 'Phobject',
'PhabricatorSSHPassthruCommand' => 'Phobject', 'PhabricatorSSHPassthruCommand' => 'Phobject',
'PhabricatorSSHWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorSSHWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorSavedQuery' => 'PhabricatorSavedQuery' =>
array( array(
0 => 'PhabricatorSearchDAO', 0 => 'PhabricatorSearchDAO',
@@ -4480,7 +4482,7 @@ phutil_register_library_map(array(
'PhabricatorSearchEngineMySQL' => 'PhabricatorSearchEngine', 'PhabricatorSearchEngineMySQL' => 'PhabricatorSearchEngine',
'PhabricatorSearchHovercardController' => 'PhabricatorSearchBaseController', 'PhabricatorSearchHovercardController' => 'PhabricatorSearchBaseController',
'PhabricatorSearchManagementIndexWorkflow' => 'PhabricatorSearchManagementWorkflow', 'PhabricatorSearchManagementIndexWorkflow' => 'PhabricatorSearchManagementWorkflow',
'PhabricatorSearchManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorSearchManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorSearchOrderController' => 'PhabricatorSearchBaseController', 'PhabricatorSearchOrderController' => 'PhabricatorSearchBaseController',
'PhabricatorSearchQuery' => 'PhabricatorSearchDAO', 'PhabricatorSearchQuery' => 'PhabricatorSearchDAO',
'PhabricatorSearchResultView' => 'AphrontView', 'PhabricatorSearchResultView' => 'AphrontView',
@@ -4574,7 +4576,7 @@ phutil_register_library_map(array(
'PhabricatorStorageManagementProbeWorkflow' => 'PhabricatorStorageManagementWorkflow', 'PhabricatorStorageManagementProbeWorkflow' => 'PhabricatorStorageManagementWorkflow',
'PhabricatorStorageManagementStatusWorkflow' => 'PhabricatorStorageManagementWorkflow', 'PhabricatorStorageManagementStatusWorkflow' => 'PhabricatorStorageManagementWorkflow',
'PhabricatorStorageManagementUpgradeWorkflow' => 'PhabricatorStorageManagementWorkflow', 'PhabricatorStorageManagementUpgradeWorkflow' => 'PhabricatorStorageManagementWorkflow',
'PhabricatorStorageManagementWorkflow' => 'PhutilArgumentWorkflow', 'PhabricatorStorageManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorSubscribersQuery' => 'PhabricatorQuery', 'PhabricatorSubscribersQuery' => 'PhabricatorQuery',
'PhabricatorSubscriptionsEditController' => 'PhabricatorController', 'PhabricatorSubscriptionsEditController' => 'PhabricatorController',
'PhabricatorSubscriptionsEditor' => 'PhabricatorEditor', 'PhabricatorSubscriptionsEditor' => 'PhabricatorEditor',

View File

@@ -178,10 +178,6 @@ final class PhabricatorAuditManagementDeleteWorkflow
return 0; return 0;
} }
private function getViewer() {
return PhabricatorUser::getOmnipotentUser();
}
private function loadUsers($users) { private function loadUsers($users) {
$users = $this->parseList($users); $users = $this->parseList($users);
if (!$users) { if (!$users) {

View File

@@ -1,10 +1,6 @@
<?php <?php
abstract class PhabricatorAuditManagementWorkflow abstract class PhabricatorAuditManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
public function isExecutable() {
return true;
}
} }

View File

@@ -22,7 +22,7 @@ final class PhabricatorAuthManagementRecoverWorkflow
public function execute(PhutilArgumentParser $args) { public function execute(PhutilArgumentParser $args) {
$can_recover = id(new PhabricatorPeopleQuery()) $can_recover = id(new PhabricatorPeopleQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer($this->getViewer())
->withIsAdmin(true) ->withIsAdmin(true)
->execute(); ->execute();
if (!$can_recover) { if (!$can_recover) {
@@ -48,7 +48,7 @@ final class PhabricatorAuthManagementRecoverWorkflow
$username = head($usernames); $username = head($usernames);
$user = id(new PhabricatorPeopleQuery()) $user = id(new PhabricatorPeopleQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer($this->getViewer())
->withUsernames(array($username)) ->withUsernames(array($username))
->executeOne(); ->executeOne();

View File

@@ -33,7 +33,7 @@ final class PhabricatorAuthManagementRefreshWorkflow
public function execute(PhutilArgumentParser $args) { public function execute(PhutilArgumentParser $args) {
$console = PhutilConsole::getConsole(); $console = PhutilConsole::getConsole();
$viewer = PhabricatorUser::getOmnipotentUser(); $viewer = $this->getViewer();
$query = id(new PhabricatorExternalAccountQuery()) $query = id(new PhabricatorExternalAccountQuery())
->setViewer($viewer); ->setViewer($viewer);

View File

@@ -1,10 +1,6 @@
<?php <?php
abstract class PhabricatorAuthManagementWorkflow abstract class PhabricatorAuthManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
final public function isExecutable() {
return true;
}
} }

View File

@@ -1,10 +1,6 @@
<?php <?php
abstract class PhabricatorCacheManagementWorkflow abstract class PhabricatorCacheManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
final public function isExecutable() {
return true;
}
} }

View File

@@ -1,10 +1,6 @@
<?php <?php
abstract class PhabricatorConfigManagementWorkflow abstract class PhabricatorConfigManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
final public function isExecutable() {
return true;
}
} }

View File

@@ -32,7 +32,7 @@ final class PhabricatorDaemonManagementLogWorkflow
$id = head($id); $id = head($id);
$daemon = id(new PhabricatorDaemonLogQuery()) $daemon = id(new PhabricatorDaemonLogQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer($this->getViewer())
->withIDs(array($id)) ->withIDs(array($id))
->executeOne(); ->executeOne();

View File

@@ -1,11 +1,7 @@
<?php <?php
abstract class PhabricatorDaemonManagementWorkflow abstract class PhabricatorDaemonManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
public function isExecutable() {
return true;
}
protected function loadAvailableDaemonClasses() { protected function loadAvailableDaemonClasses() {
$loader = new PhutilSymbolLoader(); $loader = new PhutilSymbolLoader();

View File

@@ -1,6 +1,6 @@
<?php <?php
abstract class DivinerWorkflow extends PhutilArgumentWorkflow { abstract class DivinerWorkflow extends PhabricatorManagementWorkflow {
private $config; private $config;
private $bookConfigPath; private $bookConfigPath;
@@ -9,10 +9,6 @@ abstract class DivinerWorkflow extends PhutilArgumentWorkflow {
return $this->bookConfigPath; return $this->bookConfigPath;
} }
public function isExecutable() {
return true;
}
protected function getConfig($key, $default = null) { protected function getConfig($key, $default = null) {
return idx($this->config, $key, $default); return idx($this->config, $key, $default);
} }

View File

@@ -25,7 +25,7 @@ final class DrydockManagementCloseWorkflow
"Specify one or more resource IDs to close."); "Specify one or more resource IDs to close.");
} }
$viewer = PhabricatorUser::getOmnipotentUser(); $viewer = $this->getViewer();
$resources = id(new DrydockResourceQuery()) $resources = id(new DrydockResourceQuery())
->setViewer($viewer) ->setViewer($viewer)

View File

@@ -49,7 +49,7 @@ final class DrydockManagementCreateResourceWorkflow
$attributes = $options->parse($attributes); $attributes = $options->parse($attributes);
} }
$viewer = PhabricatorUser::getOmnipotentUser(); $viewer = $this->getViewer();
$blueprint = id(new DrydockBlueprintQuery()) $blueprint = id(new DrydockBlueprintQuery())
->setViewer($viewer) ->setViewer($viewer)

View File

@@ -25,7 +25,7 @@ final class DrydockManagementReleaseWorkflow
"Specify one or more lease IDs to release."); "Specify one or more lease IDs to release.");
} }
$viewer = PhabricatorUser::getOmnipotentUser(); $viewer = $this->getViewer();
$leases = id(new DrydockLeaseQuery()) $leases = id(new DrydockLeaseQuery())
->setViewer($viewer) ->setViewer($viewer)

View File

@@ -1,10 +1,6 @@
<?php <?php
abstract class DrydockManagementWorkflow abstract class DrydockManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
public function isExecutable() {
return true;
}
} }

View File

@@ -1,10 +1,6 @@
<?php <?php
abstract class PhabricatorFactManagementWorkflow abstract class PhabricatorFactManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
public function isExecutable() {
return true;
}
} }

View File

@@ -21,7 +21,7 @@ final class PhabricatorFeedManagementRepublishWorkflow
public function execute(PhutilArgumentParser $args) { public function execute(PhutilArgumentParser $args) {
$console = PhutilConsole::getConsole(); $console = PhutilConsole::getConsole();
$viewer = PhabricatorUser::getOmnipotentUser(); $viewer = $this->getViewer();
$key = $args->getArg('key'); $key = $args->getArg('key');
if (count($key) < 1) { if (count($key) < 1) {

View File

@@ -1,10 +1,6 @@
<?php <?php
abstract class PhabricatorFeedManagementWorkflow abstract class PhabricatorFeedManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
final public function isExecutable() {
return true;
}
} }

View File

@@ -1,11 +1,7 @@
<?php <?php
abstract class PhabricatorFilesManagementWorkflow abstract class PhabricatorFilesManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
public function isExecutable() {
return true;
}
protected function buildIterator(PhutilArgumentParser $args) { protected function buildIterator(PhutilArgumentParser $args) {
$names = $args->getArg('names'); $names = $args->getArg('names');
@@ -20,7 +16,7 @@ abstract class PhabricatorFilesManagementWorkflow
if ($names) { if ($names) {
$query = id(new PhabricatorObjectQuery()) $query = id(new PhabricatorObjectQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer($this->getViewer())
->withNames($names) ->withNames($names)
->withTypes(array(PhabricatorFilePHIDTypeFile::TYPECONST)); ->withTypes(array(PhabricatorFilePHIDTypeFile::TYPECONST));

View File

@@ -23,7 +23,7 @@ final class HarbormasterManagementBuildWorkflow
} }
public function execute(PhutilArgumentParser $args) { public function execute(PhutilArgumentParser $args) {
$viewer = PhabricatorUser::getOmnipotentUser(); $viewer = $this->getViewer();
$names = $args->getArg('buildable'); $names = $args->getArg('buildable');
if (count($names) != 1) { if (count($names) != 1) {

View File

@@ -1,10 +1,6 @@
<?php <?php
abstract class HarbormasterManagementWorkflow abstract class HarbormasterManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
public function isExecutable() {
return true;
}
} }

View File

@@ -61,7 +61,7 @@ final class PhabricatorLipsumGenerateWorkflow
echo "\n"; echo "\n";
while (true) { while (true) {
$type = $supported_types[array_rand($supported_types)]; $type = $supported_types[array_rand($supported_types)];
$admin = PhabricatorUser::getOmnipotentUser(); $admin = $this->getViewer();
try { try {
$taskgen = newv($type, array()); $taskgen = newv($type, array());
$object = $taskgen->generate(); $object = $taskgen->generate();

View File

@@ -1,10 +1,6 @@
<?php <?php
abstract class PhabricatorLipsumManagementWorkflow abstract class PhabricatorLipsumManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
final public function isExecutable() {
return true;
}
} }

View File

@@ -22,7 +22,7 @@ final class PhabricatorMailManagementListInboundWorkflow
public function execute(PhutilArgumentParser $args) { public function execute(PhutilArgumentParser $args) {
$console = PhutilConsole::getConsole(); $console = PhutilConsole::getConsole();
$viewer = PhabricatorUser::getOmnipotentUser(); $viewer = $this->getViewer();
$mails = id(new PhabricatorMetaMTAReceivedMail())->loadAllWhere( $mails = id(new PhabricatorMetaMTAReceivedMail())->loadAllWhere(
'1 = 1 ORDER BY id DESC LIMIT %d', '1 = 1 ORDER BY id DESC LIMIT %d',

View File

@@ -22,7 +22,7 @@ final class PhabricatorMailManagementListOutboundWorkflow
public function execute(PhutilArgumentParser $args) { public function execute(PhutilArgumentParser $args) {
$console = PhutilConsole::getConsole(); $console = PhutilConsole::getConsole();
$viewer = PhabricatorUser::getOmnipotentUser(); $viewer = $this->getViewer();
$mails = id(new PhabricatorMetaMTAMail())->loadAllWhere( $mails = id(new PhabricatorMetaMTAMail())->loadAllWhere(
'1 = 1 ORDER BY id DESC LIMIT %d', '1 = 1 ORDER BY id DESC LIMIT %d',

View File

@@ -42,7 +42,7 @@ final class PhabricatorMailManagementReceiveTestWorkflow
} }
$user = id(new PhabricatorPeopleQuery()) $user = id(new PhabricatorPeopleQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer($this->getViewer())
->withUsernames(array($as)) ->withUsernames(array($as))
->executeOne(); ->executeOne();
if (!$user) { if (!$user) {

View File

@@ -61,7 +61,7 @@ final class PhabricatorMailManagementSendTestWorkflow
public function execute(PhutilArgumentParser $args) { public function execute(PhutilArgumentParser $args) {
$console = PhutilConsole::getConsole(); $console = PhutilConsole::getConsole();
$viewer = PhabricatorUser::getOmnipotentUser(); $viewer = $this->getViewer();
$from = $args->getArg('from'); $from = $args->getArg('from');
if ($from) { if ($from) {

View File

@@ -1,10 +1,6 @@
<?php <?php
abstract class PhabricatorMailManagementWorkflow abstract class PhabricatorMailManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
final public function isExecutable() {
return true;
}
} }

View File

@@ -20,7 +20,7 @@ final class PhabricatorPolicyManagementShowWorkflow
public function execute(PhutilArgumentParser $args) { public function execute(PhutilArgumentParser $args) {
$console = PhutilConsole::getConsole(); $console = PhutilConsole::getConsole();
$viewer = PhabricatorUser::getOmnipotentUser(); $viewer = $this->getViewer();
$obj_names = $args->getArg('objects'); $obj_names = $args->getArg('objects');
if (!$obj_names) { if (!$obj_names) {

View File

@@ -22,7 +22,7 @@ final class PhabricatorPolicyManagementUnlockWorkflow
public function execute(PhutilArgumentParser $args) { public function execute(PhutilArgumentParser $args) {
$console = PhutilConsole::getConsole(); $console = PhutilConsole::getConsole();
$viewer = PhabricatorUser::getOmnipotentUser(); $viewer = $this->getViewer();
$obj_names = $args->getArg('objects'); $obj_names = $args->getArg('objects');
if (!$obj_names) { if (!$obj_names) {

View File

@@ -1,10 +1,6 @@
<?php <?php
abstract class PhabricatorPolicyManagementWorkflow abstract class PhabricatorPolicyManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
final public function isExecutable() {
return true;
}
} }

View File

@@ -51,7 +51,7 @@ final class PhabricatorRepositoryManagementEditWorkflow
} }
$actor = id(new PhabricatorPeopleQuery()) $actor = id(new PhabricatorPeopleQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer($this->getViewer())
->withUsernames(array($username)) ->withUsernames(array($username))
->executeOne(); ->executeOne();

View File

@@ -14,7 +14,7 @@ final class PhabricatorRepositoryManagementListWorkflow
$console = PhutilConsole::getConsole(); $console = PhutilConsole::getConsole();
$repos = id(new PhabricatorRepositoryQuery()) $repos = id(new PhabricatorRepositoryQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer($this->getViewer())
->execute(); ->execute();
if ($repos) { if ($repos) {
foreach ($repos as $repo) { foreach ($repos as $repo) {

View File

@@ -89,7 +89,7 @@ final class PhabricatorRepositoryManagementLookupUsersWorkflow
} }
return id(new PhabricatorHandleQuery()) return id(new PhabricatorHandleQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer($this->getViewer())
->withPHIDs(array($phid)) ->withPHIDs(array($phid))
->executeOne(); ->executeOne();
} }

View File

@@ -1,11 +1,7 @@
<?php <?php
abstract class PhabricatorRepositoryManagementWorkflow abstract class PhabricatorRepositoryManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
public function isExecutable() {
return true;
}
protected function loadRepositories(PhutilArgumentParser $args, $param) { protected function loadRepositories(PhutilArgumentParser $args, $param) {
$callsigns = $args->getArg($param); $callsigns = $args->getArg($param);
@@ -15,7 +11,7 @@ abstract class PhabricatorRepositoryManagementWorkflow
} }
$repos = id(new PhabricatorRepositoryQuery()) $repos = id(new PhabricatorRepositoryQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer($this->getViewer())
->withCallsigns($callsigns) ->withCallsigns($callsigns)
->execute(); ->execute();
@@ -37,7 +33,7 @@ abstract class PhabricatorRepositoryManagementWorkflow
} }
$query = id(new DiffusionCommitQuery()) $query = id(new DiffusionCommitQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer($this->getViewer())
->withIdentifiers($names); ->withIdentifiers($names);
$query->execute(); $query->execute();

View File

@@ -92,7 +92,7 @@ final class PhabricatorSearchManagementIndexWorkflow
private function loadPHIDsByNames(array $names) { private function loadPHIDsByNames(array $names) {
$query = id(new PhabricatorObjectQuery()) $query = id(new PhabricatorObjectQuery())
->setViewer(PhabricatorUser::getOmnipotentUser()) ->setViewer($this->getViewer())
->withNames($names); ->withNames($names);
$query->execute(); $query->execute();
$objects = $query->getNamedResults(); $objects = $query->getNamedResults();

View File

@@ -1,13 +1,6 @@
<?php <?php
/**
* @group search
*/
abstract class PhabricatorSearchManagementWorkflow abstract class PhabricatorSearchManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
final public function isExecutable() {
return true;
}
} }

View File

@@ -0,0 +1,16 @@
<?php
abstract class PhabricatorManagementWorkflow extends PhutilArgumentWorkflow {
public function isExecutable() {
return true;
}
public function getViewer() {
// Some day, we might provide a more general viewer mechanism to scripts.
// For now, workflows can call this method for convenience and future
// flexibility.
return PhabricatorUser::getOmnipotentUser();
}
}

View File

@@ -1,6 +1,6 @@
<?php <?php
abstract class PhabricatorSSHWorkflow extends PhutilArgumentWorkflow { abstract class PhabricatorSSHWorkflow extends PhabricatorManagementWorkflow {
private $user; private $user;
private $iochannel; private $iochannel;
@@ -24,10 +24,6 @@ abstract class PhabricatorSSHWorkflow extends PhutilArgumentWorkflow {
return $this->user; return $this->user;
} }
final public function isExecutable() {
return false;
}
public function setIOChannel(PhutilChannel $channel) { public function setIOChannel(PhutilChannel $channel) {
$this->iochannel = $channel; $this->iochannel = $channel;
return $this; return $this;

View File

@@ -1,7 +1,7 @@
<?php <?php
abstract class PhabricatorStorageManagementWorkflow abstract class PhabricatorStorageManagementWorkflow
extends PhutilArgumentWorkflow { extends PhabricatorManagementWorkflow {
private $patches; private $patches;
private $api; private $api;
@@ -25,8 +25,4 @@ abstract class PhabricatorStorageManagementWorkflow
return $this->api; return $this->api;
} }
public function isExecutable() {
return true;
}
} }