From: Jean-Baptiste Lievremont Date: Tue, 9 Jun 2015 11:38:34 +0000 (+0200) Subject: SONAR-6565 Display a clear message when default group does not exist X-Git-Tag: 5.2-RC1~1561 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=6e85ae2bcf98c12c634e792742a72b8e02a04d33;p=sonarqube.git SONAR-6565 Display a clear message when default group does not exist --- diff --git a/server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java b/server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java index 557d398fd6f..15a34dfea51 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java +++ b/server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java @@ -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())); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java b/server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java index a9169d47908..2a0564f0651 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java @@ -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");