Don't return any results for viewerprojects() if the viewer is in no projects
Summary:
Fixes T10135. When the viewer is a member of no projects, specify the constraint type as a new "EMPTY" type.
When a query has an "EMPTY" constraint, fail fast with no results.
Test Plan:
- Viewed a viewerprojects() query result set as a user in no projects.
- Before patch: got a lot of hits. After patch: no hits.
- Viewed a normal result set, no changes.
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T10135
Differential Revision: https://secure.phabricator.com/D15003
This commit is contained in:
@@ -63,10 +63,16 @@ final class PhabricatorProjectLogicalViewerDatasource
|
||||
$phids = mpull($projects, 'getPHID');
|
||||
|
||||
$results = array();
|
||||
foreach ($phids as $phid) {
|
||||
if ($phids) {
|
||||
foreach ($phids as $phid) {
|
||||
$results[] = new PhabricatorQueryConstraint(
|
||||
PhabricatorQueryConstraint::OPERATOR_OR,
|
||||
$phid);
|
||||
}
|
||||
} else {
|
||||
$results[] = new PhabricatorQueryConstraint(
|
||||
PhabricatorQueryConstraint::OPERATOR_OR,
|
||||
$phid);
|
||||
PhabricatorQueryConstraint::OPERATOR_EMPTY,
|
||||
null);
|
||||
}
|
||||
|
||||
return $results;
|
||||
|
||||
Reference in New Issue
Block a user