From 85cc15b56ddce9b851ce7562912bf8bf52da40d7 Mon Sep 17 00:00:00 2001 From: epriestley Date: Wed, 4 Mar 2015 10:35:53 -0800 Subject: [PATCH] Recognize merchant authority in Fund initiatives Summary: Update fund for new merchant authority stuff. Test Plan: - Created a secret initiative. - Could see related activity as merchant. - Could not see it not-as-merchant. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Differential Revision: https://secure.phabricator.com/D11959 --- src/applications/fund/storage/FundInitiative.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/applications/fund/storage/FundInitiative.php b/src/applications/fund/storage/FundInitiative.php index f5581fa0b7..ac73401cff 100644 --- a/src/applications/fund/storage/FundInitiative.php +++ b/src/applications/fund/storage/FundInitiative.php @@ -125,7 +125,21 @@ final class FundInitiative extends FundDAO } public function hasAutomaticCapability($capability, PhabricatorUser $viewer) { - return ($viewer->getPHID() == $this->getOwnerPHID()); + if ($viewer->getPHID() == $this->getOwnerPHID()) { + return true; + } + + if ($capability == PhabricatorPolicyCapability::CAN_VIEW) { + foreach ($viewer->getAuthorities() as $authority) { + if ($authority instanceof PhortuneMerchant) { + if ($authority->getPHID() == $this->getMerchantPHID()) { + return true; + } + } + } + } + + return false; } public function describeAutomaticCapability($capability) {