@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class PhabricatorPolicySearchEngineExtension
4 extends PhabricatorSearchEngineExtension {
5
6 const EXTENSIONKEY = 'policy';
7
8 public function isExtensionEnabled() {
9 return true;
10 }
11
12 public function getExtensionName() {
13 return pht('Support for Policies');
14 }
15
16 public function supportsObject($object) {
17 return ($object instanceof PhabricatorPolicyInterface);
18 }
19
20 public function getExtensionOrder() {
21 return 6000;
22 }
23
24 public function getFieldSpecificationsForConduit($object) {
25 return array(
26 id(new PhabricatorConduitSearchFieldSpecification())
27 ->setKey('policy')
28 ->setType('map<string, wild>')
29 ->setDescription(pht('Map of capabilities to current policies.')),
30 );
31 }
32
33 public function getFieldValuesForConduit($object, $data) {
34 $capabilities = $object->getCapabilities();
35
36 $map = array();
37 foreach ($capabilities as $capability) {
38 $map[$capability] = $object->getPolicy($capability);
39 }
40
41 return array(
42 'policy' => $map,
43 );
44 }
45
46}