Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/calendar/storage/PhabricatorCalendarExternalInvitee.php
12253 views
1
<?php
2
3
final class PhabricatorCalendarExternalInvitee
4
extends PhabricatorCalendarDAO
5
implements PhabricatorPolicyInterface {
6
7
protected $name;
8
protected $nameIndex;
9
protected $uri;
10
protected $parameters = array();
11
protected $sourcePHID;
12
13
public static function initializeNewCalendarEventInvitee(
14
PhabricatorUser $actor, $event) {
15
return id(new PhabricatorCalendarEventInvitee())
16
->setInviterPHID($actor->getPHID())
17
->setStatus(PhabricatorCalendarEventInvitee::STATUS_INVITED)
18
->setEventPHID($event->getPHID());
19
}
20
21
protected function getConfiguration() {
22
return array(
23
self::CONFIG_AUX_PHID => true,
24
self::CONFIG_SERIALIZATION => array(
25
'parameters' => self::SERIALIZATION_JSON,
26
),
27
self::CONFIG_COLUMN_SCHEMA => array(
28
'name' => 'text',
29
'nameIndex' => 'bytes12',
30
'uri' => 'text',
31
),
32
self::CONFIG_KEY_SCHEMA => array(
33
'key_name' => array(
34
'columns' => array('nameIndex'),
35
'unique' => true,
36
),
37
),
38
) + parent::getConfiguration();
39
}
40
41
public function getPHIDType() {
42
return PhabricatorCalendarExternalInviteePHIDType::TYPECONST;
43
}
44
45
public function save() {
46
$this->nameIndex = PhabricatorHash::digestForIndex($this->getName());
47
return parent::save();
48
}
49
50
51
/* -( PhabricatorPolicyInterface )----------------------------------------- */
52
53
54
public function getCapabilities() {
55
return array(
56
PhabricatorPolicyCapability::CAN_VIEW,
57
);
58
}
59
60
public function getPolicy($capability) {
61
switch ($capability) {
62
case PhabricatorPolicyCapability::CAN_VIEW:
63
return PhabricatorPolicies::getMostOpenPolicy();
64
}
65
}
66
67
public function hasAutomaticCapability($capability, PhabricatorUser $viewer) {
68
return false;
69
}
70
71
}
72
73