Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/doorkeeper/engine/DoorkeeperObjectRef.php
12256 views
1
<?php
2
3
final class DoorkeeperObjectRef extends Phobject {
4
5
private $objectKey;
6
private $applicationType;
7
private $applicationDomain;
8
private $objectType;
9
private $objectID;
10
private $attributes = array();
11
private $isVisible;
12
private $syncFailed;
13
private $externalObject;
14
15
public function newExternalObject() {
16
return id(new DoorkeeperExternalObject())
17
->setApplicationType($this->getApplicationType())
18
->setApplicationDomain($this->getApplicationDomain())
19
->setObjectType($this->getObjectType())
20
->setObjectID($this->getObjectID())
21
->setViewPolicy(PhabricatorPolicies::POLICY_USER);
22
}
23
24
public function attachExternalObject(
25
DoorkeeperExternalObject $external_object) {
26
$this->externalObject = $external_object;
27
return $this;
28
}
29
30
public function getExternalObject() {
31
if (!$this->externalObject) {
32
throw new PhutilInvalidStateException('attachExternalObject');
33
}
34
return $this->externalObject;
35
}
36
37
public function setIsVisible($is_visible) {
38
$this->isVisible = $is_visible;
39
return $this;
40
}
41
42
public function getIsVisible() {
43
return $this->isVisible;
44
}
45
46
public function setSyncFailed($sync_failed) {
47
$this->syncFailed = $sync_failed;
48
return $this;
49
}
50
51
public function getSyncFailed() {
52
return $this->syncFailed;
53
}
54
55
public function getAttribute($key, $default = null) {
56
return idx($this->attributes, $key, $default);
57
}
58
59
public function setAttribute($key, $value) {
60
$this->attributes[$key] = $value;
61
return $this;
62
}
63
64
public function setObjectID($object_id) {
65
$this->objectID = $object_id;
66
return $this;
67
}
68
69
public function getObjectID() {
70
return $this->objectID;
71
}
72
73
74
public function setObjectType($object_type) {
75
$this->objectType = $object_type;
76
return $this;
77
}
78
79
public function getObjectType() {
80
return $this->objectType;
81
}
82
83
84
public function setApplicationDomain($application_domain) {
85
$this->applicationDomain = $application_domain;
86
return $this;
87
}
88
89
public function getApplicationDomain() {
90
return $this->applicationDomain;
91
}
92
93
94
public function setApplicationType($application_type) {
95
$this->applicationType = $application_type;
96
return $this;
97
}
98
99
public function getApplicationType() {
100
return $this->applicationType;
101
}
102
103
public function getFullName() {
104
return coalesce(
105
$this->getAttribute('fullname'),
106
$this->getAttribute('name'),
107
pht('External Object'));
108
}
109
110
public function getShortName() {
111
return coalesce(
112
$this->getAttribute('shortname'),
113
$this->getAttribute('name'),
114
pht('External Object'));
115
}
116
117
public function getObjectKey() {
118
if (!$this->objectKey) {
119
$this->objectKey = PhabricatorHash::digestForIndex(
120
implode(
121
':',
122
array(
123
$this->getApplicationType(),
124
$this->getApplicationDomain(),
125
$this->getObjectType(),
126
$this->getObjectID(),
127
)));
128
}
129
return $this->objectKey;
130
}
131
132
}
133
134