Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/badges/controller/PhabricatorBadgesRecipientsController.php
12262 views
1
<?php
2
3
final class PhabricatorBadgesRecipientsController
4
extends PhabricatorBadgesProfileController {
5
6
public function shouldAllowPublic() {
7
return true;
8
}
9
10
public function handleRequest(AphrontRequest $request) {
11
$viewer = $request->getViewer();
12
$id = $request->getURIData('id');
13
14
$badge = id(new PhabricatorBadgesQuery())
15
->setViewer($viewer)
16
->withIDs(array($id))
17
->executeOne();
18
if (!$badge) {
19
return new Aphront404Response();
20
}
21
$this->setBadge($badge);
22
23
$awards = id(new PhabricatorBadgesAwardQuery())
24
->setViewer($viewer)
25
->withBadgePHIDs(array($badge->getPHID()))
26
->execute();
27
28
$recipient_phids = mpull($awards, 'getRecipientPHID');
29
$recipient_phids = array_reverse($recipient_phids);
30
$handles = $this->loadViewerHandles($recipient_phids);
31
32
$crumbs = $this->buildApplicationCrumbs();
33
$crumbs->addTextCrumb(pht('Recipients'));
34
$crumbs->setBorder(true);
35
$title = $badge->getName();
36
37
$header = $this->buildHeaderView();
38
39
$recipient_list = id(new PhabricatorBadgesRecipientsListView())
40
->setBadge($badge)
41
->setAwards($awards)
42
->setHandles($handles)
43
->setUser($viewer);
44
45
$view = id(new PHUITwoColumnView())
46
->setHeader($header)
47
->setFooter(array(
48
$recipient_list,
49
));
50
51
$navigation = $this->buildSideNavView('recipients');
52
53
return $this->newPage()
54
->setTitle($title)
55
->setCrumbs($crumbs)
56
->setPageObjectPHIDs(array($badge->getPHID()))
57
->setNavigation($navigation)
58
->appendChild($view);
59
}
60
61
}
62
63