diff --git a/src/applications/people/controller/PhabricatorPeopleProfileViewController.php b/src/applications/people/controller/PhabricatorPeopleProfileViewController.php --- a/src/applications/people/controller/PhabricatorPeopleProfileViewController.php +++ b/src/applications/people/controller/PhabricatorPeopleProfileViewController.php @@ -187,6 +187,7 @@ ->setViewer($viewer) ->withPHIDs($badge_phids) ->withStatuses(array(PhabricatorBadgesBadge::STATUS_ACTIVE)) + ->needRecipients(true) ->execute(); } else { $badges = array(); @@ -195,11 +196,24 @@ if (count($badges)) { $flex = new PHUIBadgeBoxView(); foreach ($badges as $badge) { + $awarder_info = array(); + + $badge_awards = mpull($badge->getAwards(), null, 'getRecipientPHID'); + $user_award = idx($badge_awards, $user->getPHID(), null); + if ($user_award) { + $awarder_phid = $user_award->getAwarderPHID(); + $awarder_handle = $viewer->renderHandle($awarder_phid); + $awarder_info = pht( + 'Awarded by %s', + $awarder_handle->render()); + } + $item = id(new PHUIBadgeView()) ->setIcon($badge->getIcon()) ->setHeader($badge->getName()) ->setSubhead($badge->getFlavor()) - ->setQuality($badge->getQuality()); + ->setQuality($badge->getQuality()) + ->addByLine($awarder_info); $flex->addItem($item); } } else {