]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-8970 Set user as member when creating an organization
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 17 Mar 2017 10:07:35 +0000 (11:07 +0100)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 21 Mar 2017 12:05:50 +0000 (13:05 +0100)
server/sonar-server/src/main/java/org/sonar/server/organization/OrganizationCreationImpl.java
server/sonar-server/src/test/java/org/sonar/server/organization/OrganizationCreationImplTest.java
server/sonar-server/src/test/java/org/sonar/server/organization/ws/CreateActionTest.java

index f74568c76f1bacdb13aaad785b9807958590ee1f..a69d3ab314e5a82c05548c43d6f29ab12c9677af 100644 (file)
@@ -75,6 +75,7 @@ public class OrganizationCreationImpl implements OrganizationCreation {
 
     OrganizationDto organization = insertOrganization(dbSession, newOrganization, dto -> {
     });
+    insertOrganizationMember(dbSession, organization, creatorUserId);
     GroupDto group = insertOwnersGroup(dbSession, organization);
     insertDefaultTemplate(dbSession, organization, group);
     addCurrentUserToGroup(dbSession, group, creatorUserId);
@@ -106,7 +107,7 @@ public class OrganizationCreationImpl implements OrganizationCreation {
     OrganizationPermission.all()
       .forEach(p -> insertUserPermissions(dbSession, newUser, organization, p));
     insertPersonalOrgDefaultTemplate(dbSession, organization);
-    insertOrganizationMember(dbSession, organization, newUser);
+    insertOrganizationMember(dbSession, organization, newUser.getId());
 
     dbSession.commit();
 
@@ -255,9 +256,9 @@ public class OrganizationCreationImpl implements OrganizationCreation {
       new UserGroupDto().setGroupId(group.getId()).setUserId(createUserId));
   }
 
-  private void insertOrganizationMember(DbSession dbSession, OrganizationDto organizationDto, UserDto userDto) {
+  private void insertOrganizationMember(DbSession dbSession, OrganizationDto organizationDto, int userId) {
     dbClient.organizationMemberDao().insert(dbSession, new OrganizationMemberDto()
       .setOrganizationUuid(organizationDto.getUuid())
-      .setUserId(userDto.getId()));
+      .setUserId(userId));
   }
 }
index 164762bb0d635779f23815048a464ad811f7251f..9bf636f7572088064c1bb152cde4e346822cc8f2 100644 (file)
@@ -211,6 +211,15 @@ public class OrganizationCreationImplTest {
         tuple(ANYONE_GROUP_ID, UserRole.USER), tuple(ANYONE_GROUP_ID, UserRole.CODEVIEWER));
   }
 
+  @Test
+  public void create_add_current_user_as_member_of_organization() throws OrganizationCreation.KeyConflictException {
+    mockForSuccessfulInsert(SOME_UUID, SOME_DATE);
+
+    underTest.create(dbSession, SOME_USER_ID, FULL_POPULATED_NEW_ORGANIZATION);
+
+    assertThat(dbClient.organizationMemberDao().select(dbSession, SOME_UUID, SOME_USER_ID)).isPresent();
+  }
+
   @Test
   public void createForUser_has_no_effect_if_setting_for_feature_is_not_set() {
     checkSizeOfTables();
index 71b7160433c9ef1e551d09209092a16938157eea..f92e772444bd131bacd47a2ee25c953e077e6e1f 100644 (file)
@@ -490,6 +490,17 @@ public class CreateActionTest {
         tuple(0, UserRole.USER), tuple(0, UserRole.CODEVIEWER));
   }
 
+  @Test
+  public void request_set_user_as_member_of_organization() {
+    mockForSuccessfulInsert(SOME_UUID, SOME_DATE);
+    UserDto user = dbTester.users().insertUser();
+    userSession.logIn(user).setSystemAdministrator();
+
+    executeRequest("orgFoo");
+
+    assertThat(dbClient.organizationMemberDao().select(dbSession, SOME_UUID, user.getId())).isPresent();
+  }
+
   @Test
   public void request_fails_with_IllegalStateException_if_organization_support_is_disabled() {
     organizationFlags.setEnabled(false);