diff options
author | Youssef Elghareeb <ghareeb@google.com> | 2023-06-05 11:31:10 +0000 |
---|---|---|
committer | Paladox none <thomasmulhall410@yahoo.com> | 2024-01-23 18:45:48 +0000 |
commit | 584fefed7d2ddafc38e1adf27bca18aed925edba (patch) | |
tree | 1f63e7e3e78371545aa41f3a5c86c8980505e07a | |
parent | 1b657f4c66162b51f54cba54850fded14a90a08a (diff) |
Fix populating star field in change queries for anonymous users
In change Idc0cac3e3 we added an option to populate 'starred' field for
change query requests with an option. Fixing the case when query
requests are sent for anonymous users.
The added test fails wihout the change in ChangeJson.java.
Release-Notes: skip
Google-Bug-Id: b/285320824
Change-Id: I2e214cc4cf7259e5f73078fb210ce982173a0df9
(cherry picked from commit 6f5f427b34d99e85802f301fefafc432738cdf2a)
-rw-r--r-- | java/com/google/gerrit/server/change/ChangeJson.java | 2 | ||||
-rw-r--r-- | javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/java/com/google/gerrit/server/change/ChangeJson.java b/java/com/google/gerrit/server/change/ChangeJson.java index a9063bb891..c7e0799beb 100644 --- a/java/com/google/gerrit/server/change/ChangeJson.java +++ b/java/com/google/gerrit/server/change/ChangeJson.java @@ -538,7 +538,7 @@ public class ChangeJson { "Omitting corrupt change %s from results", cd.getId()); } } - if (has(STAR)) { + if (has(STAR) && userProvider.get().isIdentifiedUser()) { populateStarField(changeInfos); } return changeInfos; diff --git a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java index 9b3e116e0a..f6e7ede1ca 100644 --- a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java +++ b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java @@ -2786,6 +2786,24 @@ public abstract class AbstractQueryChangesTest extends GerritServerTests { } @Test + public void byStar_withStarOptionSet_notPopulatedForAnonymousUsers() throws Exception { + // Create a random change and star it as some user + TestRepository<Repo> repo = createProject("repo"); + Change change1 = insert(repo, newChangeWithStatus(repo, Change.Status.NEW)); + Account.Id user2 = + accountManager.authenticate(authRequestFactory.createForUser("anotheruser")).getAccountId(); + requestContext.setContext(newRequestContext(user2)); + gApi.accounts().self().starChange(change1.getId().toString()); + + // Request a change query for all open changes. The star field is not set on the single change. + requestContext.setContext(anonymousUserProvider::get); + List<ChangeInfo> changeInfos = + gApi.changes().query("is:open").withOptions(ListChangesOption.STAR).get(); + assertThat(changeInfos.get(0)._number).isEqualTo(change1.getId().get()); + assertThat(changeInfos.get(0).starred).isNull(); + } + + @Test public void byStarWithManyStars() throws Exception { TestRepository<Repo> repo = createProject("repo"); Change[] changesWithDrafts = new Change[30]; |