Remove all "FileHasObject" edge reads and writes
[phabricator.git] / src / applications / transactions / editfield / PhabricatorPolicyEditField.php
blobfbe967b4e3273ac4b1fd6bbbd63b5aad14667c59
1 <?php
3 final class PhabricatorPolicyEditField
4 extends PhabricatorEditField {
6 private $policies;
7 private $capability;
8 private $spaceField;
10 public function setPolicies(array $policies) {
11 $this->policies = $policies;
12 return $this;
15 public function getPolicies() {
16 if ($this->policies === null) {
17 throw new PhutilInvalidStateException('setPolicies');
19 return $this->policies;
22 public function setCapability($capability) {
23 $this->capability = $capability;
24 return $this;
27 public function getCapability() {
28 return $this->capability;
31 public function setSpaceField(PhabricatorSpaceEditField $space_field) {
32 $this->spaceField = $space_field;
33 return $this;
36 public function getSpaceField() {
37 return $this->spaceField;
40 protected function newControl() {
41 $control = id(new AphrontFormPolicyControl())
42 ->setCapability($this->getCapability())
43 ->setPolicyObject($this->getObject())
44 ->setPolicies($this->getPolicies());
46 $space_field = $this->getSpaceField();
47 if ($space_field) {
48 $control->setSpacePHID($space_field->getValueForControl());
51 return $control;
54 protected function newHTTPParameterType() {
55 return new AphrontPHIDHTTPParameterType();
58 protected function newConduitParameterType() {
59 return new ConduitStringParameterType();