aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2015-10-21 16:35:35 +0200
committerJulien Lancelot <julien.lancelot@sonarsource.com>2015-10-22 09:29:09 +0200
commit0a17a11e7e08f39558d11cd3cc311cd44fbe8900 (patch)
tree604715229d697dc3075c7062c8669b8a87906850 /server
parent1fabcdaf19701087c36d5e1dd0b06e1575cfb10b (diff)
downloadsonarqube-0a17a11e7e08f39558d11cd3cc311cd44fbe8900.tar.gz
sonarqube-0a17a11e7e08f39558d11cd3cc311cd44fbe8900.zip
SONAR-6467 When updating a user, the default group should not be set
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/user/UserUpdater.java3
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/user/UserUpdaterTest.java10
-rw-r--r--server/sonar-server/src/test/resources/org/sonar/server/user/UserUpdaterTest/associate_default_groups_when_updating_user.xml4
3 files changed, 7 insertions, 10 deletions
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 57e6c2e35e5..5b62331ab67 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
@@ -95,6 +95,7 @@ public class UserUpdater {
UserDto existingUser = dbClient.userDao().selectByLogin(dbSession, login);
if (existingUser == null) {
saveUser(dbSession, userDto);
+ addDefaultGroup(dbSession, userDto);
} else {
if (existingUser.isActive()) {
throw new IllegalArgumentException(String.format("An active user with login '%s' already exists", login));
@@ -107,6 +108,7 @@ public class UserUpdater {
.setPasswordConfirmation(newUser.passwordConfirmation());
updateUserDto(dbSession, updateUser, existingUser);
updateUser(dbSession, existingUser);
+ addDefaultGroup(dbSession, existingUser);
isUserReactivated = true;
}
dbSession.commit();
@@ -311,7 +313,6 @@ public class UserUpdater {
long now = system2.now();
userDto.setActive(true).setUpdatedAt(now);
dbClient.userDao().update(dbSession, userDto);
- addDefaultGroup(dbSession, userDto);
}
private static void setEncryptedPassWord(String password, UserDto userDto) {
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 64a6d7177a8..22898e5c06e 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
@@ -36,9 +36,11 @@ import org.sonar.api.platform.NewUserHandler;
import org.sonar.api.utils.System2;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
+import org.sonar.db.user.GroupDao;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.GroupMembershipDao;
import org.sonar.db.user.GroupMembershipQuery;
+import org.sonar.db.user.UserDao;
import org.sonar.db.user.UserDto;
import org.sonar.db.user.UserGroupDao;
import org.sonar.server.db.DbClient;
@@ -46,8 +48,6 @@ import org.sonar.server.es.EsTester;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.exceptions.Message;
import org.sonar.server.exceptions.ServerException;
-import org.sonar.db.user.GroupDao;
-import org.sonar.db.user.UserDao;
import org.sonar.server.user.index.UserIndexDefinition;
import org.sonar.server.user.index.UserIndexer;
import org.sonar.server.util.Validation;
@@ -794,12 +794,12 @@ public class UserUpdaterTest {
}
}
-
@Test
- public void associate_default_group_when_updating_user() {
+ public void not_associate_default_group_when_updating_user() {
db.prepareDbUnit(getClass(), "associate_default_groups_when_updating_user.xml");
createDefaultGroup();
+ // Existing user, he has no group, and should not be associated to the default one
userUpdater.update(UpdateUser.create("marius")
.setName("Marius2")
.setEmail("marius2@mail.com")
@@ -811,7 +811,7 @@ public class UserUpdaterTest {
GroupMembershipFinder.Membership membership = groupMembershipFinder.find(GroupMembershipQuery.builder().login("marius").groupSearch("sonar-users").build());
assertThat(membership.groups()).hasSize(1);
assertThat(membership.groups().get(0).name()).isEqualTo("sonar-users");
- assertThat(membership.groups().get(0).isMember()).isTrue();
+ assertThat(membership.groups().get(0).isMember()).isFalse();
}
@Test
diff --git a/server/sonar-server/src/test/resources/org/sonar/server/user/UserUpdaterTest/associate_default_groups_when_updating_user.xml b/server/sonar-server/src/test/resources/org/sonar/server/user/UserUpdaterTest/associate_default_groups_when_updating_user.xml
index 617fe0f8389..926b75324ad 100644
--- a/server/sonar-server/src/test/resources/org/sonar/server/user/UserUpdaterTest/associate_default_groups_when_updating_user.xml
+++ b/server/sonar-server/src/test/resources/org/sonar/server/user/UserUpdaterTest/associate_default_groups_when_updating_user.xml
@@ -3,8 +3,4 @@
<users id="101" login="marius" name="Marius" email="marius@lesbronzes.fr" active="[true]" scm_accounts="&#10;ma&#10;marius33&#10;" created_at="1418215735482" updated_at="1418215735485"
salt="79bd6a8e79fb8c76ac8b121cc7e8e11ad1af8365" crypted_password="650d2261c98361e2f67f90ce5c65a95e7d8ea2fg"/>
- <groups id="1" name="sonar-devs" description="Sonar Devs" created_at="2014-09-08" updated_at="2014-09-08"/>
-
- <groups_users user_id="101" group_id="1"/>
-
</dataset>