3 final class PhortuneAccountManagersController
4 extends PhortuneAccountProfileController
{
6 protected function shouldRequireAccountEditCapability() {
10 protected function handleAccountRequest(AphrontRequest
$request) {
11 $account = $this->getAccount();
12 $title = $account->getName();
14 $crumbs = $this->buildApplicationCrumbs()
15 ->addTextCrumb(pht('Managers'))
18 $header = $this->buildHeaderView();
19 $authority = $this->newAccountAuthorityView();
20 $members = $this->buildMembersSection($account);
22 $view = id(new PHUITwoColumnView())
30 $navigation = $this->buildSideNavView('managers');
32 return $this->newPage()
35 ->setNavigation($navigation)
40 private function buildMembersSection(PhortuneAccount
$account) {
41 $viewer = $this->getViewer();
43 $can_edit = PhabricatorPolicyFilter
::hasCapability(
46 PhabricatorPolicyCapability
::CAN_EDIT
);
48 $id = $account->getID();
50 $add = id(new PHUIButtonView())
52 ->setText(pht('Add Managers'))
55 ->setDisabled(!$can_edit)
56 ->setHref("/phortune/account/{$id}/managers/add/");
58 $header = id(new PHUIHeaderView())
59 ->setHeader(pht('Account Managers'))
60 ->addActionLink($add);
62 $list = id(new PHUIObjectItemListView())
65 $member_phids = $account->getMemberPHIDs();
66 $handles = $viewer->loadHandles($member_phids);
68 foreach ($member_phids as $member_phid) {
69 $image_uri = $handles[$member_phid]->getImageURI();
70 $image_href = $handles[$member_phid]->getURI();
71 $person = $handles[$member_phid];
73 $member = id(new PHUIObjectItemView())
74 ->setImageURI($image_uri)
75 ->setHref($image_href)
76 ->setHeader($person->getFullName())
77 ->addAttribute(pht('Account Manager'));
79 $list->addItem($member);
82 return id(new PHUIObjectBoxView())
84 ->setBackground(PHUIObjectBoxView
::BLUE_PROPERTY
)
85 ->setObjectList($list);