Filter account entry suggestions
This change uses the cansee search operator to filter the autocomplete
suggestions to users that may view the current change.
Bug: Issue 8722
Change-Id: I35d48695a23e69fbcc58641e74b8abef6d8ba055
(cherry picked from commit bd1e5e9a194dbef18ca502db5c5564f4863011a4)
diff --git a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js
index 3626b86..aea2bf9 100644
--- a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js
+++ b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry.js
@@ -119,7 +119,9 @@
},
_getReviewerSuggestions(input) {
- if (!this.change) { return Promise.resolve([]); }
+ if (!this.change || !this.change._number) { return Promise.resolve([]); }
+
+ input = `cansee:${this.change._number} ${input}`;
const api = this.$.restAPI;
const xhr = this.allowAnyUser ?
api.getSuggestedAccounts(input) :
diff --git a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html
index a4dacc7..66b18f7 100644
--- a/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html
+++ b/polygerrit-ui/app/elements/change/gr-account-entry/gr-account-entry_test.html
@@ -79,6 +79,7 @@
element = fixture('basic');
element.change = {
+ _number: 42,
owner,
reviewers: {
CC: [existingReviewer1],
@@ -178,12 +179,14 @@
element._getReviewerSuggestions('').then(() => {
assert.isTrue(suggestReviewerStub.calledOnce);
+ assert.isTrue(suggestReviewerStub.calledWith(42, 'cansee:42 '));
assert.isFalse(suggestAccountStub.called);
element.allowAnyUser = true;
element._getReviewerSuggestions('').then(() => {
assert.isTrue(suggestReviewerStub.calledOnce);
assert.isTrue(suggestAccountStub.calledOnce);
+ assert.isTrue(suggestAccountStub.calledWith('cansee:42 '));
done();
});
});