summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYoussef Elghareeb <ghareeb@google.com>2023-06-05 11:31:10 +0000
committerPaladox none <thomasmulhall410@yahoo.com>2024-01-23 18:45:48 +0000
commit584fefed7d2ddafc38e1adf27bca18aed925edba (patch)
tree1f63e7e3e78371545aa41f3a5c86c8980505e07a
parent1b657f4c66162b51f54cba54850fded14a90a08a (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.java2
-rw-r--r--javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java18
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];