@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
at upstream/main 52 lines 1.2 kB view raw
1<?php 2 3/** 4 * @extends PhabricatorCursorPagedPolicyAwareQuery<PhabricatorEditEngine> 5 */ 6final class PhabricatorEditEngineQuery 7 extends PhabricatorCursorPagedPolicyAwareQuery { 8 9 private $engineKeys; 10 11 public function withEngineKeys(array $keys) { 12 $this->engineKeys = $keys; 13 return $this; 14 } 15 16 protected function loadPage() { 17 $engines = PhabricatorEditEngine::getAllEditEngines(); 18 19 if ($this->engineKeys !== null) { 20 $engines = array_select_keys($engines, $this->engineKeys); 21 } 22 23 return $engines; 24 } 25 26 protected function willFilterPage(array $engines) { 27 $viewer = $this->getViewer(); 28 29 foreach ($engines as $key => $engine) { 30 $app_class = $engine->getEngineApplicationClass(); 31 if ($app_class === null) { 32 continue; 33 } 34 35 $can_see = PhabricatorApplication::isClassInstalledForViewer( 36 $app_class, 37 $viewer); 38 if (!$can_see) { 39 $this->didRejectResult($engine); 40 unset($engines[$key]); 41 continue; 42 } 43 } 44 45 return $engines; 46 } 47 48 public function getQueryApplicationClass() { 49 return PhabricatorTransactionsApplication::class; 50 } 51 52}