Page MenuHomePhabricator

D21556.diff
No OneTemporary

D21556.diff

diff --git a/src/applications/differential/customfield/DifferentialReviewersField.php b/src/applications/differential/customfield/DifferentialReviewersField.php
--- a/src/applications/differential/customfield/DifferentialReviewersField.php
+++ b/src/applications/differential/customfield/DifferentialReviewersField.php
@@ -72,22 +72,40 @@
return array();
}
+ $viewer = $this->getViewer();
+
+ PhabricatorPolicyFilterSet::loadHandleViewCapabilities(
+ $viewer,
+ $handles,
+ array($revision));
+
$all_resigned = true;
$all_disabled = true;
$any_reviewers = false;
+ $all_exiled = true;
foreach ($this->getValue() as $reviewer) {
$reviewer_phid = $reviewer->getReviewerPHID();
+ $handle = $handles[$reviewer_phid];
$any_reviewers = true;
- if (!$handles[$reviewer_phid]->isDisabled()) {
+ if (!$handle->isDisabled()) {
$all_disabled = false;
}
if (!$reviewer->isResigned()) {
$all_resigned = false;
}
+
+ if (!$handle->hasCapabilities()) {
+ $all_exiled = false;
+ } else {
+ if ($handle->hasViewCapability($revision)) {
+ $all_exiled = false;
+ }
+ }
+
}
$warnings = array();
@@ -101,6 +119,10 @@
} else if ($all_resigned) {
$warnings[] = pht(
'This revision needs review, but all reviewers have resigned.');
+ } else if ($all_exiled) {
+ $warnings[] = pht(
+ 'This revision needs review, but no reviewers have permission '.
+ 'to view it.');
}
return $warnings;

File Metadata

Mime Type
text/plain
Expires
May 12 2024, 2:39 AM (5 w, 39 m ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6287290
Default Alt Text
D21556.diff (1 KB)

Event Timeline