forked from phacility/phabricator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPhabricatorProjectMemberListView.php
65 lines (53 loc) · 1.61 KB
/
PhabricatorProjectMemberListView.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
final class PhabricatorProjectMemberListView
extends PhabricatorProjectUserListView {
protected function canEditList() {
$viewer = $this->getViewer();
$project = $this->getProject();
if (!$project->supportsEditMembers()) {
return false;
}
return PhabricatorPolicyFilter::hasCapability(
$viewer,
$project,
PhabricatorPolicyCapability::CAN_EDIT);
}
protected function getNoDataString() {
return pht('This project does not have any members.');
}
protected function getRemoveURI($phid) {
$project = $this->getProject();
$id = $project->getID();
return "/project/members/{$id}/remove/?phid={$phid}";
}
protected function getHeaderText() {
return pht('Members');
}
protected function getMembershipNote() {
$viewer = $this->getViewer();
$viewer_phid = $viewer->getPHID();
$project = $this->getProject();
if (!$viewer_phid) {
return null;
}
$note = null;
if ($project->isUserMember($viewer_phid)) {
$edge_type = PhabricatorProjectSilencedEdgeType::EDGECONST;
$silenced = PhabricatorEdgeQuery::loadDestinationPHIDs(
$project->getPHID(),
$edge_type);
$silenced = array_fuse($silenced);
$is_silenced = isset($silenced[$viewer_phid]);
if ($is_silenced) {
$note = pht(
'You have disabled mail. When mail is sent to project members, '.
'you will not receive a copy.');
} else {
$note = pht(
'You are a member and you will receive mail that is sent to all '.
'project members.');
}
}
return $note;
}
}