@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 recaptime-dev/main 56 lines 1.3 kB view raw
1<?php 2 3abstract class AlmanacPropertyController extends AlmanacController { 4 5 private $propertyObject; 6 7 public function getPropertyObject() { 8 return $this->propertyObject; 9 } 10 11 protected function loadPropertyObject() { 12 $viewer = $this->getViewer(); 13 $request = $this->getRequest(); 14 $object_phid = $request->getStr('objectPHID'); 15 16 17 switch (phid_get_type($object_phid)) { 18 case AlmanacBindingPHIDType::TYPECONST: 19 $query = new AlmanacBindingQuery(); 20 break; 21 case AlmanacDevicePHIDType::TYPECONST: 22 $query = new AlmanacDeviceQuery(); 23 break; 24 case AlmanacServicePHIDType::TYPECONST: 25 $query = new AlmanacServiceQuery(); 26 break; 27 default: 28 return new Aphront404Response(); 29 } 30 31 $object = $query 32 ->setViewer($viewer) 33 ->withPHIDs(array($object_phid)) 34 ->requireCapabilities( 35 array( 36 PhabricatorPolicyCapability::CAN_VIEW, 37 PhabricatorPolicyCapability::CAN_EDIT, 38 )) 39 ->needProperties(true) 40 ->executeOne(); 41 42 if (!$object) { 43 return new Aphront404Response(); 44 } 45 46 if (!($object instanceof AlmanacPropertyInterface)) { 47 return new Aphront404Response(); 48 } 49 50 $this->propertyObject = $object; 51 52 return null; 53 } 54 55 56}