private Optional<OrganizationDto> getPersonalOrganization(DbSession dbSession, UserDto user) { String personalOrganizationUuid = user.getOrganizationUuid(); if (personalOrganizationUuid == null) { return Optional.empty(); } return Optional.of(dbClient.organizationDao().selectByUuid(dbSession, personalOrganizationUuid) .orElseThrow(() -> new IllegalStateException(format("Organization uuid '%s' does not exist", personalOrganizationUuid)))); }
private void updatePersonalOrganization(DbSession dbSession, UserDto user) { String personalOrganizationUuid = user.getOrganizationUuid(); if (personalOrganizationUuid == null) { return; } dbClient.organizationDao().selectByUuid(dbSession, personalOrganizationUuid) .ifPresent(organization -> organizationUpdater.updateOrganizationKey(dbSession, organization, user.getLogin())); }
private void detectLoginUpdate(DbSession dbSession, UserDto user, UpdateUser update, UserRegistration authenticatorParameters) { String newLogin = update.login(); if (!update.isLoginChanged() || user.getLogin().equals(newLogin)) { return; } if (!organizationFlags.isEnabled(dbSession)) { return; } String personalOrganizationUuid = user.getOrganizationUuid(); if (personalOrganizationUuid == null) { return; } Optional<OrganizationDto> personalOrganization = dbClient.organizationDao().selectByUuid(dbSession, personalOrganizationUuid); checkState(personalOrganization.isPresent(), "Cannot find personal organization uuid '%s' for user '%s'", personalOrganizationUuid, user.getLogin()); UpdateLoginStrategy updateLoginStrategy = authenticatorParameters.getUpdateLoginStrategy(); switch (updateLoginStrategy) { case ALLOW: organizationUpdater.updateOrganizationKey(dbSession, personalOrganization.get(), requireNonNull(newLogin, "new login cannot be null")); return; case WARN: throw new UpdateLoginRedirectionException(authenticatorParameters.getUserIdentity(), authenticatorParameters.getProvider(), user, personalOrganization.get()); default: throw new IllegalStateException(format("Unknown strategy %s", updateLoginStrategy)); } }
@Test public void createForUser_creates_guarded_organization_with_key_name_and_description_generated_from_user_login_and_name_and_associated_to_user() { UserDto user = db.users().insertUser(A_LOGIN); when(organizationValidation.generateKeyFrom(A_LOGIN)).thenReturn(SLUG_OF_A_LOGIN); enableCreatePersonalOrg(true); builtInQProfileRepositoryRule.initialize(); db.qualityGates().insertBuiltInQualityGate(); underTest.createForUser(dbSession, user); OrganizationDto organization = dbClient.organizationDao().selectByKey(dbSession, SLUG_OF_A_LOGIN).get(); assertThat(organization.getUuid()).isNotEmpty(); assertThat(organization.getKey()).isEqualTo(SLUG_OF_A_LOGIN); assertThat(organization.getName()).isEqualTo(user.getName()); assertThat(organization.getDescription()).isEqualTo(user.getName() + "'s personal organization"); assertThat(organization.getUrl()).isNull(); assertThat(organization.getAvatarUrl()).isNull(); assertThat(organization.isGuarded()).isTrue(); assertThat(organization.getSubscription()).isEqualTo(Subscription.FREE); assertThat(organization.getCreatedAt()).isEqualTo(A_DATE); assertThat(organization.getUpdatedAt()).isEqualTo(A_DATE); assertThat(db.getDbClient().userDao().selectByUuid(dbSession, user.getUuid()).getOrganizationUuid()).isEqualTo(organization.getUuid()); }
assertThat(user.getHomepageType()).isEqualTo("project"); assertThat(user.getHomepageParameter()).isEqualTo("OB1"); assertThat(user.getOrganizationUuid()).isEqualTo("ORG_UUID");
assertThat(reloaded.getHomepageType()).isEqualTo("project"); assertThat(reloaded.getHomepageParameter()).isEqualTo("OB1"); assertThat(reloaded.getOrganizationUuid()).isEqualTo("ORG_UUID");
private void detectLoginUpdate(DbSession dbSession, UserDto user, UpdateUser update, UserIdentityAuthenticatorParameters authenticatorParameters) { String newLogin = update.login(); if (!update.isLoginChanged() || user.getLogin().equals(newLogin)) { return; } if (!organizationFlags.isEnabled(dbSession)) { return; } String personalOrganizationUuid = user.getOrganizationUuid(); if (personalOrganizationUuid == null) { return; } Optional<OrganizationDto> personalOrganization = dbClient.organizationDao().selectByUuid(dbSession, personalOrganizationUuid); checkState(personalOrganization.isPresent(), "Cannot find personal organization uuid '%s' for user '%s'", personalOrganizationUuid, user.getLogin()); UpdateLoginStrategy updateLoginStrategy = authenticatorParameters.getUpdateLoginStrategy(); switch (updateLoginStrategy) { case ALLOW: organizationUpdater.updateOrganizationKey(dbSession, personalOrganization.get(), requireNonNull(newLogin, "new login cannot be null")); return; case WARN: throw new UpdateLoginRedirectionException(authenticatorParameters.getUserIdentity(), authenticatorParameters.getProvider(), user, personalOrganization.get()); default: throw new IllegalStateException(format("Unknown strategy %s", updateLoginStrategy)); } }