@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
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}