From: Jean-Baptiste Lievremont Date: Mon, 27 Apr 2015 08:25:59 +0000 (+0200) Subject: SONAR-6427 Use default dashboards when user has no specific configuration X-Git-Tag: 5.2-RC1~2112 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fpull%2F259%2Fhead;p=sonarqube.git SONAR-6427 Use default dashboards when user has no specific configuration --- 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();