Changeset View
Changeset View
Standalone View
Standalone View
src/applications/maniphest/editor/ManiphestTransactionEditor.php
Show First 20 Lines • Show All 273 Lines • ▼ Show 20 Lines | final class ManiphestTransactionEditor | ||||
protected function buildHeraldAdapter( | protected function buildHeraldAdapter( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
array $xactions) { | array $xactions) { | ||||
return id(new HeraldManiphestTaskAdapter()) | return id(new HeraldManiphestTaskAdapter()) | ||||
->setTask($object); | ->setTask($object); | ||||
} | } | ||||
protected function requireCapabilities( | |||||
PhabricatorLiskDAO $object, | |||||
PhabricatorApplicationTransaction $xaction) { | |||||
parent::requireCapabilities($object, $xaction); | |||||
$app_capability_map = array( | |||||
ManiphestTaskPriorityTransaction::TRANSACTIONTYPE => | |||||
ManiphestEditPriorityCapability::CAPABILITY, | |||||
ManiphestTaskStatusTransaction::TRANSACTIONTYPE => | |||||
ManiphestEditStatusCapability::CAPABILITY, | |||||
ManiphestTaskOwnerTransaction::TRANSACTIONTYPE => | |||||
ManiphestEditAssignCapability::CAPABILITY, | |||||
PhabricatorTransactions::TYPE_EDIT_POLICY => | |||||
ManiphestEditPoliciesCapability::CAPABILITY, | |||||
PhabricatorTransactions::TYPE_VIEW_POLICY => | |||||
ManiphestEditPoliciesCapability::CAPABILITY, | |||||
); | |||||
$transaction_type = $xaction->getTransactionType(); | |||||
$app_capability = null; | |||||
if ($transaction_type == PhabricatorTransactions::TYPE_EDGE) { | |||||
switch ($xaction->getMetadataValue('edge:type')) { | |||||
case PhabricatorProjectObjectHasProjectEdgeType::EDGECONST: | |||||
$app_capability = ManiphestEditProjectsCapability::CAPABILITY; | |||||
break; | |||||
} | |||||
} else { | |||||
$app_capability = idx($app_capability_map, $transaction_type); | |||||
} | |||||
if ($app_capability) { | |||||
$app = id(new PhabricatorApplicationQuery()) | |||||
->setViewer($this->getActor()) | |||||
->withClasses(array('PhabricatorManiphestApplication')) | |||||
->executeOne(); | |||||
PhabricatorPolicyFilter::requireCapability( | |||||
$this->getActor(), | |||||
$app, | |||||
$app_capability); | |||||
} | |||||
} | |||||
protected function adjustObjectForPolicyChecks( | protected function adjustObjectForPolicyChecks( | ||||
PhabricatorLiskDAO $object, | PhabricatorLiskDAO $object, | ||||
array $xactions) { | array $xactions) { | ||||
$copy = parent::adjustObjectForPolicyChecks($object, $xactions); | $copy = parent::adjustObjectForPolicyChecks($object, $xactions); | ||||
foreach ($xactions as $xaction) { | foreach ($xactions as $xaction) { | ||||
switch ($xaction->getTransactionType()) { | switch ($xaction->getTransactionType()) { | ||||
case ManiphestTaskOwnerTransaction::TRANSACTIONTYPE: | case ManiphestTaskOwnerTransaction::TRANSACTIONTYPE: | ||||
▲ Show 20 Lines • Show All 725 Lines • Show Last 20 Lines |