Changeset View
Changeset View
Standalone View
Standalone View
src/applications/policy/config/PolicyLockOptionType.php
<?php | <?php | ||||
final class PolicyLockOptionType | final class PolicyLockOptionType | ||||
extends PhabricatorConfigJSONOptionType { | extends PhabricatorConfigJSONOptionType { | ||||
public function validateOption(PhabricatorConfigOption $option, $value) { | public function validateOption(PhabricatorConfigOption $option, $value) { | ||||
$capabilities = id(new PhutilSymbolLoader()) | $capabilities = id(new PhutilClassMapQuery()) | ||||
->setAncestorClass('PhabricatorPolicyCapability') | ->setAncestorClass('PhabricatorPolicyCapability') | ||||
->loadObjects(); | ->setUniqueMethod('getCapabilityKey') | ||||
$capabilities = mpull($capabilities, null, 'getCapabilityKey'); | ->execute(); | ||||
$policy_phids = array(); | $policy_phids = array(); | ||||
foreach ($value as $capability_key => $policy) { | foreach ($value as $capability_key => $policy) { | ||||
$capability = idx($capabilities, $capability_key); | $capability = idx($capabilities, $capability_key); | ||||
if (!$capability) { | if (!$capability) { | ||||
throw new Exception( | throw new Exception( | ||||
pht( | pht( | ||||
'Capability "%s" does not exist.', | 'Capability "%s" does not exist.', | ||||
▲ Show 20 Lines • Show All 50 Lines • Show Last 20 Lines |