Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/almanac/controller/AlmanacPropertyController.php
12256 views
1
<?php
2
3
abstract 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
}
57
58