Page MenuHomePhabricator

D11373.id27313.diff
No OneTemporary

D11373.id27313.diff

diff --git a/src/applications/meta/controller/PhabricatorApplicationEditController.php b/src/applications/meta/controller/PhabricatorApplicationEditController.php
--- a/src/applications/meta/controller/PhabricatorApplicationEditController.php
+++ b/src/applications/meta/controller/PhabricatorApplicationEditController.php
@@ -115,11 +115,10 @@
->setUser($user);
$locked_policies = PhabricatorEnv::getEnvConfig('policy.locked');
- $locked_map = array_fill_keys($locked_policies, true);
foreach ($application->getCapabilities() as $capability) {
$label = $application->getCapabilityLabel($capability);
$can_edit = $application->isCapabilityEditable($capability);
- $locked = idx($locked_map, $capability);
+ $locked = idx($locked_policies, $capability);
$caption = $application->getCapabilityCaption($capability);
if (!$can_edit || $locked) {
@@ -132,7 +131,7 @@
$form->appendChild(
id(new AphrontFormPolicyControl())
->setUser($user)
- ->setDisabled(idx($locked_map, $capability))
+ ->setDisabled($locked)
->setCapability($capability)
->setPolicyObject($application)
->setPolicies($policies)
diff --git a/src/applications/policy/config/PhabricatorPolicyConfigOptions.php b/src/applications/policy/config/PhabricatorPolicyConfigOptions.php
--- a/src/applications/policy/config/PhabricatorPolicyConfigOptions.php
+++ b/src/applications/policy/config/PhabricatorPolicyConfigOptions.php
@@ -46,6 +46,7 @@
"available, and the most open policy is 'All Users' (which means ".
"users must have accounts and be logged in to view things).")),
$this->newOption('policy.locked', $policy_locked_type, array())
+ ->setLocked(true)
->setSummary(pht(
'Lock specific application policies so they can not be edited.'))
->setDescription(pht(
diff --git a/src/applications/policy/query/PhabricatorPolicyQuery.php b/src/applications/policy/query/PhabricatorPolicyQuery.php
--- a/src/applications/policy/query/PhabricatorPolicyQuery.php
+++ b/src/applications/policy/query/PhabricatorPolicyQuery.php
@@ -23,8 +23,13 @@
$results = array();
$map = array();
+ $policy_locked = PhabricatorEnv::getEnvConfig('policy.locked');
foreach ($object->getCapabilities() as $capability) {
- $map[$capability] = $object->getPolicy($capability);
+ if (isset($policy_locked[$capability])) {
+ $map[$capability] = $policy_locked[$capability];
+ } else {
+ $map[$capability] = $object->getPolicy($capability);
+ }
}
$policies = id(new PhabricatorPolicyQuery())

File Metadata

Mime Type
text/plain
Expires
Fri, Feb 7, 3:20 AM (21 h, 13 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7098258
Default Alt Text
D11373.id27313.diff (2 KB)

Event Timeline