From 49938f7c972dea120bfc1290747413071342dc25 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Lievremont Date: Mon, 27 Apr 2015 10:25:59 +0200 Subject: [PATCH] SONAR-6427 Use default dashboards when user has no specific configuration --- .../org/sonar/server/ui/ws/GlobalNavigationAction.java | 5 +++++ .../sonar/server/ui/ws/GlobalNavigationActionTest.java | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/server/sonar-server/src/main/java/org/sonar/server/ui/ws/GlobalNavigationAction.java b/server/sonar-server/src/main/java/org/sonar/server/ui/ws/GlobalNavigationAction.java index c6a7c7d39cb..96692e7d857 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/ui/ws/GlobalNavigationAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/ui/ws/GlobalNavigationAction.java @@ -36,6 +36,8 @@ import java.util.List; public class GlobalNavigationAction implements NavigationAction { + private static final String ANONYMOUS = null; + private final ActiveDashboardDao activeDashboardDao; private final Views views; private final Settings settings; @@ -61,6 +63,9 @@ public class GlobalNavigationAction implements NavigationAction { UserSession userSession = UserSession.get(); List dashboards = activeDashboardDao.selectGlobalDashboardsForUserLogin(userSession.login()); + if (dashboards.isEmpty()) { + dashboards = activeDashboardDao.selectGlobalDashboardsForUserLogin(ANONYMOUS); + } JsonWriter json = response.newJsonWriter().beginObject(); writeDashboards(json, dashboards); diff --git a/server/sonar-server/src/test/java/org/sonar/server/ui/ws/GlobalNavigationActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ui/ws/GlobalNavigationActionTest.java index ec28952e9f1..a556cfcee55 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/ui/ws/GlobalNavigationActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/ui/ws/GlobalNavigationActionTest.java @@ -114,6 +114,15 @@ public class GlobalNavigationActionTest { wsTester.newGetRequest("api/navigation", "global").execute().assertJson(getClass(), "user.json"); } + @Test + public void nominal_call_for_user_without_configured_dashboards() throws Exception { + nominalSetup(); + + MockUserSession.set().setLogin("anakin"); + + wsTester.newGetRequest("api/navigation", "global").execute().assertJson(getClass(), "anonymous.json"); + } + private void nominalSetup() { createAndConfigureDashboardForUser(); createAndConfigureDashboardForAnonymous(); -- 2.39.5