@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
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Move users to modular transactions

Summary:
Ref T13164. See PHI642. I'd like to provide a third-generation `user.edit` API endpoint and make `user.enable` and `user.disable` obsolete before meddling with policy details, even if it isn't full-fledged yet.

Users do already have a transactions table and a Transaction-based editor, but it's only used for editing title, real name, etc. All of these are custom fields, so their support comes in automatically through CustomField extension code.

Realign it for modular transactions so new code will be fully modern. There are no actual standalone transaction types yet so this diff is pretty thin.

Test Plan:
- Grepped for `UserProfileEditor`.
- Edited a user's title/real name/icon.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13164

Differential Revision: https://secure.phabricator.com/D19576

+19 -11
+5 -3
src/__phutil_library_map__.php
··· 4583 4583 'PhabricatorUserPreferencesTransaction' => 'applications/settings/storage/PhabricatorUserPreferencesTransaction.php', 4584 4584 'PhabricatorUserPreferencesTransactionQuery' => 'applications/settings/query/PhabricatorUserPreferencesTransactionQuery.php', 4585 4585 'PhabricatorUserProfile' => 'applications/people/storage/PhabricatorUserProfile.php', 4586 - 'PhabricatorUserProfileEditor' => 'applications/people/editor/PhabricatorUserProfileEditor.php', 4587 4586 'PhabricatorUserProfileImageCacheType' => 'applications/people/cache/PhabricatorUserProfileImageCacheType.php', 4588 4587 'PhabricatorUserRealNameField' => 'applications/people/customfield/PhabricatorUserRealNameField.php', 4589 4588 'PhabricatorUserRolesField' => 'applications/people/customfield/PhabricatorUserRolesField.php', ··· 4593 4592 'PhabricatorUserTestCase' => 'applications/people/storage/__tests__/PhabricatorUserTestCase.php', 4594 4593 'PhabricatorUserTitleField' => 'applications/people/customfield/PhabricatorUserTitleField.php', 4595 4594 'PhabricatorUserTransaction' => 'applications/people/storage/PhabricatorUserTransaction.php', 4595 + 'PhabricatorUserTransactionEditor' => 'applications/people/editor/PhabricatorUserTransactionEditor.php', 4596 + 'PhabricatorUserTransactionType' => 'applications/people/xaction/PhabricatorUserTransactionType.php', 4596 4597 'PhabricatorUsersEditField' => 'applications/transactions/editfield/PhabricatorUsersEditField.php', 4597 4598 'PhabricatorUsersPolicyRule' => 'applications/people/policyrule/PhabricatorUsersPolicyRule.php', 4598 4599 'PhabricatorUsersSearchField' => 'applications/people/searchfield/PhabricatorUsersSearchField.php', ··· 10575 10576 'PhabricatorUserPreferencesTransaction' => 'PhabricatorApplicationTransaction', 10576 10577 'PhabricatorUserPreferencesTransactionQuery' => 'PhabricatorApplicationTransactionQuery', 10577 10578 'PhabricatorUserProfile' => 'PhabricatorUserDAO', 10578 - 'PhabricatorUserProfileEditor' => 'PhabricatorApplicationTransactionEditor', 10579 10579 'PhabricatorUserProfileImageCacheType' => 'PhabricatorUserCacheType', 10580 10580 'PhabricatorUserRealNameField' => 'PhabricatorUserCustomField', 10581 10581 'PhabricatorUserRolesField' => 'PhabricatorUserCustomField', ··· 10584 10584 'PhabricatorUserStatusField' => 'PhabricatorUserCustomField', 10585 10585 'PhabricatorUserTestCase' => 'PhabricatorTestCase', 10586 10586 'PhabricatorUserTitleField' => 'PhabricatorUserCustomField', 10587 - 'PhabricatorUserTransaction' => 'PhabricatorApplicationTransaction', 10587 + 'PhabricatorUserTransaction' => 'PhabricatorModularTransaction', 10588 + 'PhabricatorUserTransactionEditor' => 'PhabricatorApplicationTransactionEditor', 10589 + 'PhabricatorUserTransactionType' => 'PhabricatorModularTransactionType', 10588 10590 'PhabricatorUsersEditField' => 'PhabricatorTokenizerEditField', 10589 10591 'PhabricatorUsersPolicyRule' => 'PhabricatorPolicyRule', 10590 10592 'PhabricatorUsersSearchField' => 'PhabricatorSearchTokenizerField',
+2 -3
src/applications/people/controller/PhabricatorPeopleProfileEditController.php
··· 38 38 new PhabricatorUserTransaction(), 39 39 $request); 40 40 41 - $editor = id(new PhabricatorUserProfileEditor()) 41 + $editor = id(new PhabricatorUserTransactionEditor()) 42 42 ->setActor($viewer) 43 - ->setContentSource( 44 - PhabricatorContentSource::newFromRequest($request)) 43 + ->setContentSourceFromRequest($request) 45 44 ->setContinueOnNoEffect(true); 46 45 47 46 try {
+2 -3
src/applications/people/editor/PhabricatorUserProfileEditor.php src/applications/people/editor/PhabricatorUserTransactionEditor.php
··· 1 1 <?php 2 2 3 - final class PhabricatorUserProfileEditor 3 + final class PhabricatorUserTransactionEditor 4 4 extends PhabricatorApplicationTransactionEditor { 5 5 6 6 public function getEditorApplicationClass() { ··· 8 8 } 9 9 10 10 public function getEditorObjectsDescription() { 11 - return pht('User Profiles'); 11 + return pht('Users'); 12 12 } 13 - 14 13 15 14 }
+1 -1
src/applications/people/storage/PhabricatorUser.php
··· 1362 1362 1363 1363 1364 1364 public function getApplicationTransactionEditor() { 1365 - return new PhabricatorUserProfileEditor(); 1365 + return new PhabricatorUserTransactionEditor(); 1366 1366 } 1367 1367 1368 1368 public function getApplicationTransactionObject() {
+5 -1
src/applications/people/storage/PhabricatorUserTransaction.php
··· 1 1 <?php 2 2 3 3 final class PhabricatorUserTransaction 4 - extends PhabricatorApplicationTransaction { 4 + extends PhabricatorModularTransaction { 5 5 6 6 public function getApplicationName() { 7 7 return 'user'; ··· 13 13 14 14 public function getApplicationTransactionCommentObject() { 15 15 return null; 16 + } 17 + 18 + public function getBaseTransactionClass() { 19 + return 'PhabricatorUserTransactionType'; 16 20 } 17 21 18 22 }
+4
src/applications/people/xaction/PhabricatorUserTransactionType.php
··· 1 + <?php 2 + 3 + abstract class PhabricatorUserTransactionType 4 + extends PhabricatorModularTransactionType {}