]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6565 Display a clear message when default group does not exist
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Tue, 9 Jun 2015 11:38:34 +0000 (13:38 +0200)
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>
Tue, 9 Jun 2015 11:38:39 +0000 (13:38 +0200)
server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java
server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java

index 557d398fd6f608459f4b464cfc038afccd11a51b..15a34dfea5128c9e080de76b7b86960baf98caba 100644 (file)
@@ -322,7 +322,11 @@ public class UserUpdater {
         return input != null && input.getKey().equals(defaultGroup);
       }
     })) {
-      GroupDto groupDto = dbClient.groupDao().selectByKey(dbSession, defaultGroup);
+      GroupDto groupDto = dbClient.groupDao().selectNullableByKey(dbSession, defaultGroup);
+      if (groupDto == null) {
+        throw new IllegalStateException(String.format("The default group '%s' for new users does not exist. Please update the general security settings to fix this issue.",
+          defaultGroup));
+      }
       dbClient.userGroupDao().insert(dbSession, new UserGroupDto().setUserId(userDto.getId()).setGroupId(groupDto.getId()));
     }
   }
index a9169d47908c6ef608f9b320bd5c159c1a1209df..2a0564f0651d2a9f0f250be521ca7a1cfaa9e351 100644 (file)
@@ -496,6 +496,24 @@ public class UserUpdaterTest {
     }
   }
 
+  @Test
+  public void fail_to_associate_default_group_when_default_group_does_not_exist() {
+    settings.setProperty(CoreProperties.CORE_DEFAULT_GROUP, "polop");
+
+    try {
+      userUpdater.create(NewUser.create()
+        .setLogin("user")
+        .setName("User")
+        .setEmail("user@mail.com")
+        .setPassword("password")
+        .setPasswordConfirmation("password")
+        .setScmAccounts(newArrayList("u1", "u_1")));
+    } catch (Exception e) {
+      assertThat(e).isInstanceOf(IllegalStateException.class)
+        .hasMessage("The default group 'polop' for new users does not exist. Please update the general security settings to fix this issue.");
+    }
+  }
+
   @Test
   public void reactivate_user_when_creating_user_with_existing_login() {
     db.prepareDbUnit(getClass(), "reactivate_user.xml");