[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/differential/customfield/ -> DifferentialEditPolicyField.php (source)

   1  <?php
   2  
   3  final class DifferentialEditPolicyField
   4    extends DifferentialCoreCustomField {
   5  
   6    public function getFieldKey() {
   7      return 'differential:edit-policy';
   8    }
   9  
  10    public function getFieldName() {
  11      return pht('Edit Policy');
  12    }
  13  
  14    public function getFieldDescription() {
  15      return pht('Controls who can edit a revision.');
  16    }
  17  
  18    protected function readValueFromRevision(
  19      DifferentialRevision $revision) {
  20      return $revision->getEditPolicy();
  21    }
  22  
  23    public function readValueFromRequest(AphrontRequest $request) {
  24      $this->setValue($request->getStr($this->getFieldKey()));
  25    }
  26  
  27    public function renderEditControl(array $handles) {
  28      $viewer = $this->getViewer();
  29      $revision = $this->getObject();
  30  
  31      $policies = id(new PhabricatorPolicyQuery())
  32        ->setViewer($viewer)
  33        ->setObject($revision)
  34        ->execute();
  35  
  36      return id(new AphrontFormPolicyControl())
  37        ->setUser($viewer)
  38        ->setCapability(PhabricatorPolicyCapability::CAN_EDIT)
  39        ->setPolicyObject($revision)
  40        ->setPolicies($policies)
  41        ->setName($this->getFieldKey())
  42        ->setValue($this->getValue())
  43        ->setError($this->getFieldError());
  44    }
  45  
  46    public function getApplicationTransactionType() {
  47      return PhabricatorTransactions::TYPE_EDIT_POLICY;
  48    }
  49  
  50  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1