Changeset View
Changeset View
Standalone View
Standalone View
src/infrastructure/query/policy/PhabricatorPolicyAwareQuery.php
Show First 20 Lines • Show All 296 Lines • ▼ Show 20 Lines | final public function execute() { | ||||
$results = $this->didLoadResults($results); | $results = $this->didLoadResults($results); | ||||
return $results; | return $results; | ||||
} | } | ||||
private function getPolicyFilter() { | private function getPolicyFilter() { | ||||
$filter = new PhabricatorPolicyFilter(); | $filter = new PhabricatorPolicyFilter(); | ||||
$filter->setViewer($this->viewer); | $filter->setViewer($this->viewer); | ||||
if (!$this->capabilities) { | $capabilities = $this->getRequiredCapabilities(); | ||||
$capabilities = array( | |||||
PhabricatorPolicyCapability::CAN_VIEW, | |||||
); | |||||
} else { | |||||
$capabilities = $this->capabilities; | |||||
} | |||||
$filter->requireCapabilities($capabilities); | $filter->requireCapabilities($capabilities); | ||||
$filter->raisePolicyExceptions($this->shouldRaisePolicyExceptions()); | $filter->raisePolicyExceptions($this->shouldRaisePolicyExceptions()); | ||||
return $filter; | return $filter; | ||||
} | } | ||||
protected function getRequiredCapabilities() { | |||||
if ($this->capabilities) { | |||||
return $this->capabilities; | |||||
} | |||||
return array( | |||||
PhabricatorPolicyCapability::CAN_VIEW, | |||||
); | |||||
} | |||||
protected function applyPolicyFilter(array $objects, array $capabilities) { | |||||
if ($this->shouldDisablePolicyFiltering()) { | |||||
return $objects; | |||||
} | |||||
$filter = $this->getPolicyFilter(); | |||||
$filter->requireCapabilities($capabilities); | |||||
return $filter->apply($objects); | |||||
} | |||||
protected function didRejectResult(PhabricatorPolicyInterface $object) { | protected function didRejectResult(PhabricatorPolicyInterface $object) { | ||||
$this->getPolicyFilter()->rejectObject( | $this->getPolicyFilter()->rejectObject( | ||||
$object, | $object, | ||||
$object->getPolicy(PhabricatorPolicyCapability::CAN_VIEW), | $object->getPolicy(PhabricatorPolicyCapability::CAN_VIEW), | ||||
PhabricatorPolicyCapability::CAN_VIEW); | PhabricatorPolicyCapability::CAN_VIEW); | ||||
} | } | ||||
public function addPolicyFilteredPHIDs(array $phids) { | public function addPolicyFilteredPHIDs(array $phids) { | ||||
▲ Show 20 Lines • Show All 303 Lines • Show Last 20 Lines |