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();
         });
       });