Skip to content

Commit fa569c3

Browse files
author
Chad Little
committedMar 9, 2017
Add award and revoke conduit calls to Badges
Summary: Allow people to award and remove badges via conduit, but not from the standard badges form. Test Plan: Build a generator and generate awards. Didn't test the revoke yet. {F3857766} Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Maniphest Tasks: T12270 Differential Revision: https://secure.phabricator.com/D17482
1 parent 3277d8b commit fa569c3

File tree

3 files changed

+55
-0
lines changed

3 files changed

+55
-0
lines changed
 

‎src/__phutil_library_map__.php

+2
Original file line numberDiff line numberDiff line change
@@ -2018,6 +2018,7 @@
20182018
'PhabricatorBadgesAward' => 'applications/badges/storage/PhabricatorBadgesAward.php',
20192019
'PhabricatorBadgesAwardController' => 'applications/badges/controller/PhabricatorBadgesAwardController.php',
20202020
'PhabricatorBadgesAwardQuery' => 'applications/badges/query/PhabricatorBadgesAwardQuery.php',
2021+
'PhabricatorBadgesAwardTestDataGenerator' => 'applications/badges/lipsum/PhabricatorBadgesAwardTestDataGenerator.php',
20212022
'PhabricatorBadgesBadge' => 'applications/badges/storage/PhabricatorBadgesBadge.php',
20222023
'PhabricatorBadgesBadgeAwardTransaction' => 'applications/badges/xaction/PhabricatorBadgesBadgeAwardTransaction.php',
20232024
'PhabricatorBadgesBadgeDescriptionTransaction' => 'applications/badges/xaction/PhabricatorBadgesBadgeDescriptionTransaction.php',
@@ -7000,6 +7001,7 @@
70007001
),
70017002
'PhabricatorBadgesAwardController' => 'PhabricatorBadgesController',
70027003
'PhabricatorBadgesAwardQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
7004+
'PhabricatorBadgesAwardTestDataGenerator' => 'PhabricatorTestDataGenerator',
70037005
'PhabricatorBadgesBadge' => array(
70047006
'PhabricatorBadgesDAO',
70057007
'PhabricatorPolicyInterface',

‎src/applications/badges/editor/PhabricatorBadgesEditEngine.php

+17
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,23 @@ protected function buildCustomEditFields($object) {
124124
->setTransactionType(
125125
PhabricatorBadgesBadgeDescriptionTransaction::TRANSACTIONTYPE)
126126
->setValue($object->getDescription()),
127+
id(new PhabricatorUsersEditField())
128+
->setKey('award')
129+
->setIsConduitOnly(true)
130+
->setDescription(pht('New badge award recipients.'))
131+
->setConduitTypeDescription(pht('New badge award recipients.'))
132+
->setTransactionType(
133+
PhabricatorBadgesBadgeAwardTransaction::TRANSACTIONTYPE)
134+
->setLabel(pht('Award Recipients')),
135+
id(new PhabricatorUsersEditField())
136+
->setKey('revoke')
137+
->setIsConduitOnly(true)
138+
->setDescription(pht('Revoke badge award recipients.'))
139+
->setConduitTypeDescription(pht('Revoke badge award recipients.'))
140+
->setTransactionType(
141+
PhabricatorBadgesBadgeRevokeTransaction::TRANSACTIONTYPE)
142+
->setLabel(pht('Revoke Recipients')),
143+
127144
);
128145
}
129146

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
3+
final class PhabricatorBadgesAwardTestDataGenerator
4+
extends PhabricatorTestDataGenerator {
5+
6+
const GENERATORKEY = 'badges.award';
7+
8+
public function getGeneratorName() {
9+
return pht('Badges Award');
10+
}
11+
12+
public function generateObject() {
13+
$author = $this->loadRandomUser();
14+
$recipient = $this->loadRandomUser();
15+
$badge_phid = $this->loadRandomPHID(new PhabricatorBadgesBadge());
16+
17+
$xactions = array();
18+
19+
$xactions[] = array(
20+
'type' => 'award',
21+
'value' => array($recipient->getPHID()),
22+
);
23+
24+
$params = array(
25+
'transactions' => $xactions,
26+
'objectIdentifier' => $badge_phid,
27+
);
28+
29+
$result = id(new ConduitCall('badges.edit', $params))
30+
->setUser($author)
31+
->execute();
32+
33+
return $result['object']['phid'];
34+
}
35+
36+
}

0 commit comments

Comments
 (0)
Failed to load comments.