Remove all "FileHasObject" edge reads and writes
[phabricator.git] / src / applications / phortune / controller / account / PhortuneAccountManagersController.php
blob538fadeac9e68e5b11587bfbfdcf6c358e27c621
1 <?php
3 final class PhortuneAccountManagersController
4 extends PhortuneAccountProfileController {
6 protected function shouldRequireAccountEditCapability() {
7 return false;
10 protected function handleAccountRequest(AphrontRequest $request) {
11 $account = $this->getAccount();
12 $title = $account->getName();
14 $crumbs = $this->buildApplicationCrumbs()
15 ->addTextCrumb(pht('Managers'))
16 ->setBorder(true);
18 $header = $this->buildHeaderView();
19 $authority = $this->newAccountAuthorityView();
20 $members = $this->buildMembersSection($account);
22 $view = id(new PHUITwoColumnView())
23 ->setHeader($header)
24 ->setFooter(
25 array(
26 $authority,
27 $members,
28 ));
30 $navigation = $this->buildSideNavView('managers');
32 return $this->newPage()
33 ->setTitle($title)
34 ->setCrumbs($crumbs)
35 ->setNavigation($navigation)
36 ->appendChild($view);
40 private function buildMembersSection(PhortuneAccount $account) {
41 $viewer = $this->getViewer();
43 $can_edit = PhabricatorPolicyFilter::hasCapability(
44 $viewer,
45 $account,
46 PhabricatorPolicyCapability::CAN_EDIT);
48 $id = $account->getID();
50 $add = id(new PHUIButtonView())
51 ->setTag('a')
52 ->setText(pht('Add Managers'))
53 ->setIcon('fa-plus')
54 ->setWorkflow(true)
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())
63 ->setUser($viewer);
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())
83 ->setHeader($header)
84 ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
85 ->setObjectList($list);