Page MenuHomePhabricator

D17482.id.diff
No OneTemporary

D17482.id.diff

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 @@
+<?php
+
+final class PhabricatorBadgesAwardTestDataGenerator
+ extends PhabricatorTestDataGenerator {
+
+ const GENERATORKEY = 'badges.award';
+
+ public function getGeneratorName() {
+ return pht('Badges Award');
+ }
+
+ public function generateObject() {
+ $author = $this->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'];
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 17, 1:50 PM (2 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7708428
Default Alt Text
D17482.id.diff (3 KB)

Event Timeline