diff --git a/src/applications/policy/editor/PhabricatorPolicyEditEngineExtension.php b/src/applications/policy/editor/PhabricatorPolicyEditEngineExtension.php index ce534195a5..1e97f59e24 100644 --- a/src/applications/policy/editor/PhabricatorPolicyEditEngineExtension.php +++ b/src/applications/policy/editor/PhabricatorPolicyEditEngineExtension.php @@ -101,6 +101,7 @@ final class PhabricatorPolicyEditEngineExtension ->setLabel(pht('Space')) ->setEditTypeKey('space') ->setIsCopyable(true) + ->setIsLockable(false) ->setIsReorderable(false) ->setAliases(array('space', 'policy.space')) ->setTransactionType($type_space) @@ -111,6 +112,7 @@ final class PhabricatorPolicyEditEngineExtension ->setValue($object->getSpacePHID()); $fields[] = $space_field; + $space_field->setPolicyField($policy_field); $policy_field->setSpaceField($space_field); } } diff --git a/src/applications/transactions/editfield/PhabricatorSpaceEditField.php b/src/applications/transactions/editfield/PhabricatorSpaceEditField.php index 6ad1e27831..ee15f0b19e 100644 --- a/src/applications/transactions/editfield/PhabricatorSpaceEditField.php +++ b/src/applications/transactions/editfield/PhabricatorSpaceEditField.php @@ -3,6 +3,17 @@ final class PhabricatorSpaceEditField extends PhabricatorEditField { + private $policyField; + + public function setPolicyField(PhabricatorPolicyEditField $policy_field) { + $this->policyField = $policy_field; + return $this; + } + + public function getPolicyField() { + return $this->policyField; + } + protected function newControl() { // NOTE: This field doesn't do anything on its own, it just serves as a // companion to the associated View Policy field. @@ -17,4 +28,13 @@ final class PhabricatorSpaceEditField return new ConduitPHIDParameterType(); } + + public function shouldReadValueFromRequest() { + return $this->getPolicyField()->shouldReadValueFromRequest(); + } + + public function shouldReadValueFromSubmit() { + return $this->getPolicyField()->shouldReadValueFromSubmit(); + } + }