diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -2018,6 +2018,7 @@ 'PhabricatorBadgesAward' => 'applications/badges/storage/PhabricatorBadgesAward.php', 'PhabricatorBadgesAwardController' => 'applications/badges/controller/PhabricatorBadgesAwardController.php', 'PhabricatorBadgesAwardQuery' => 'applications/badges/query/PhabricatorBadgesAwardQuery.php', + 'PhabricatorBadgesAwardTestDataGenerator' => 'applications/badges/lipsum/PhabricatorBadgesAwardTestDataGenerator.php', 'PhabricatorBadgesBadge' => 'applications/badges/storage/PhabricatorBadgesBadge.php', 'PhabricatorBadgesBadgeAwardTransaction' => 'applications/badges/xaction/PhabricatorBadgesBadgeAwardTransaction.php', 'PhabricatorBadgesBadgeDescriptionTransaction' => 'applications/badges/xaction/PhabricatorBadgesBadgeDescriptionTransaction.php', @@ -7000,6 +7001,7 @@ ), 'PhabricatorBadgesAwardController' => 'PhabricatorBadgesController', 'PhabricatorBadgesAwardQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', + 'PhabricatorBadgesAwardTestDataGenerator' => 'PhabricatorTestDataGenerator', 'PhabricatorBadgesBadge' => array( 'PhabricatorBadgesDAO', 'PhabricatorPolicyInterface', diff --git a/src/applications/badges/editor/PhabricatorBadgesEditEngine.php b/src/applications/badges/editor/PhabricatorBadgesEditEngine.php --- a/src/applications/badges/editor/PhabricatorBadgesEditEngine.php +++ b/src/applications/badges/editor/PhabricatorBadgesEditEngine.php @@ -124,6 +124,23 @@ ->setTransactionType( PhabricatorBadgesBadgeDescriptionTransaction::TRANSACTIONTYPE) ->setValue($object->getDescription()), + id(new PhabricatorUsersEditField()) + ->setKey('award') + ->setIsConduitOnly(true) + ->setDescription(pht('New badge award recipients.')) + ->setConduitTypeDescription(pht('New badge award recipients.')) + ->setTransactionType( + PhabricatorBadgesBadgeAwardTransaction::TRANSACTIONTYPE) + ->setLabel(pht('Award Recipients')), + id(new PhabricatorUsersEditField()) + ->setKey('revoke') + ->setIsConduitOnly(true) + ->setDescription(pht('Revoke badge award recipients.')) + ->setConduitTypeDescription(pht('Revoke badge award recipients.')) + ->setTransactionType( + PhabricatorBadgesBadgeRevokeTransaction::TRANSACTIONTYPE) + ->setLabel(pht('Revoke Recipients')), + ); } diff --git a/src/applications/badges/lipsum/PhabricatorBadgesAwardTestDataGenerator.php b/src/applications/badges/lipsum/PhabricatorBadgesAwardTestDataGenerator.php new file mode 100644 --- /dev/null +++ b/src/applications/badges/lipsum/PhabricatorBadgesAwardTestDataGenerator.php @@ -0,0 +1,36 @@ +loadRandomUser(); + $recipient = $this->loadRandomUser(); + $badge_phid = $this->loadRandomPHID(new PhabricatorBadgesBadge()); + + $xactions = array(); + + $xactions[] = array( + 'type' => 'award', + 'value' => array($recipient->getPHID()), + ); + + $params = array( + 'transactions' => $xactions, + 'objectIdentifier' => $badge_phid, + ); + + $result = id(new ConduitCall('badges.edit', $params)) + ->setUser($author) + ->execute(); + + return $result['object']['phid']; + } + +}