]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8716 fix check of permissions in SettingsAction
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Sun, 5 Feb 2017 14:34:16 +0000 (15:34 +0100)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Tue, 7 Feb 2017 13:30:43 +0000 (14:30 +0100)
server/sonar-server/src/main/java/org/sonar/server/ui/ws/SettingsAction.java
server/sonar-server/src/test/java/org/sonar/server/ui/ws/SettingsActionTest.java

index 9c4ff352a2f3c25ad31f71fd5cc7bcc70a385ed7..6194c208d5e6c30fbe488a140ae399abebc821fa 100644 (file)
@@ -27,7 +27,6 @@ import org.sonar.api.server.ws.WebService.NewController;
 import org.sonar.api.utils.text.JsonWriter;
 import org.sonar.api.web.page.Page;
 import org.sonar.core.config.WebConstants;
-import org.sonar.core.permission.GlobalPermissions;
 import org.sonar.server.ui.PageRepository;
 import org.sonar.server.user.UserSession;
 
@@ -59,13 +58,13 @@ public class SettingsAction implements NavigationWsAction {
 
   @Override
   public void handle(Request request, Response response) throws Exception {
-    boolean isAdmin = userSession.hasPermission(GlobalPermissions.SYSTEM_ADMIN);
+    boolean isRoot = userSession.isRoot();
 
     JsonWriter json = response.newJsonWriter().beginObject();
-    json.prop("showUpdateCenter", isAdmin && settings.getBoolean(WebConstants.SONAR_UPDATECENTER_ACTIVATE));
+    json.prop("showUpdateCenter", isRoot && settings.getBoolean(WebConstants.SONAR_UPDATECENTER_ACTIVATE));
 
     json.name("extensions").beginArray();
-    if (isAdmin) {
+    if (isRoot) {
       for (Page page : pageRepository.getGlobalPages(true)) {
         json.beginObject()
           .prop("key", page.getKey())
index adb4b3fae856da59fc8f90b6e8b603bd8dbd98e1..7d6df1d8461f581411d947df02d61b3cdf34e94d 100644 (file)
@@ -27,7 +27,6 @@ import org.sonar.api.config.Settings;
 import org.sonar.api.web.page.Page;
 import org.sonar.api.web.page.PageDefinition;
 import org.sonar.core.config.WebConstants;
-import org.sonar.core.permission.GlobalPermissions;
 import org.sonar.core.platform.PluginRepository;
 import org.sonar.server.tester.UserSessionRule;
 import org.sonar.server.ui.PageRepository;
@@ -50,7 +49,7 @@ public class SettingsActionTest {
   @Test
   public void empty() throws Exception {
     init();
-    userSessionRule.setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+    userSessionRule.logIn().setRoot();
 
     executeAndVerify("empty.json");
   }
@@ -58,7 +57,7 @@ public class SettingsActionTest {
   @Test
   public void with_pages() throws Exception {
     init(createPages());
-    userSessionRule.setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+    userSessionRule.logIn().setRoot();
 
     executeAndVerify("with_pages.json");
   }
@@ -67,15 +66,16 @@ public class SettingsActionTest {
   public void with_update_center() throws Exception {
     init();
     settings.setProperty(WebConstants.SONAR_UPDATECENTER_ACTIVATE, true);
-    userSessionRule.setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+    userSessionRule.logIn().setRoot();
 
     executeAndVerify("with_update_center.json");
   }
 
   @Test
-  public void with_views_and_update_center_but_not_admin() throws Exception {
+  public void with_views_and_update_center_but_not_root_administrator() throws Exception {
     init(createPages());
     settings.setProperty(WebConstants.SONAR_UPDATECENTER_ACTIVATE, true);
+    userSessionRule.logIn().setNonRoot();
 
     executeAndVerify("empty.json");
   }