@Override public String create(UserDto user) { return user.getEmail() + "_avatar"; }
@Override public String create(UserDto user) { UserDto userDto = requireNonNull(user, "User cannot be null"); return hash(requireNonNull(emptyToNull(userDto.getEmail()), "Email cannot be null")); }
private UserDto commitUser(DbSession dbSession, UserDto userDto, Consumer<UserDto> beforeCommit, UserDto... otherUsersToIndex) { beforeCommit.accept(userDto); userIndexer.commitAndIndex(dbSession, concat(Stream.of(userDto), stream(otherUsersToIndex)).collect(toList())); notifyNewUser(userDto.getLogin(), userDto.getName(), userDto.getEmail()); return userDto; }
private static boolean updateEmail(UpdateUser updateUser, UserDto userDto, List<String> messages) { String email = updateUser.email(); if (updateUser.isEmailChanged() && validateEmailFormat(email, messages) && !Objects.equals(userDto.getEmail(), email)) { userDto.setEmail(email); return true; } return false; }
private Users.User.Builder formatUser(UserDto user) { Users.User.Builder builder = Users.User.newBuilder() .setLogin(user.getLogin()) .setName(nullToEmpty(user.getName())) .setActive(user.isActive()); ofNullable(emptyToNull(user.getEmail())).ifPresent(email -> builder.setAvatar(avatarFactory.create(user))); return builder; }
private Function<FieldDiffs, Changelog> toWsChangelog(ChangeLogResults results) { return change -> { String userUUuid = change.userUuid(); Changelog.Builder changelogBuilder = Changelog.newBuilder(); changelogBuilder.setCreationDate(formatDateTime(change.creationDate())); UserDto user = userUUuid == null ? null : results.users.get(userUUuid); if (user != null) { changelogBuilder.setUser(user.getLogin()); changelogBuilder.setUserName(user.getName()); ofNullable(emptyToNull(user.getEmail())).ifPresent(email -> changelogBuilder.setAvatar(avatarFactory.create(user))); } change.diffs().entrySet().stream() .map(toWsDiff(results)) .forEach(changelogBuilder::addDiffs); return changelogBuilder.build(); }; }
private SearchUsersResponse.User toUser(UserDto user, boolean isSelected) { SearchUsersResponse.User.Builder builder = SearchUsersResponse.User.newBuilder() .setLogin(user.getLogin()) .setName(user.getName()) .setSelected(isSelected); ofNullable(emptyToNull(user.getEmail())).ifPresent(e -> builder.setAvatar(avatarResolver.create(user))); return builder .build(); }
private void verifyUserInDb(String expectedLogin, String expectedName, @Nullable String expectedEmail, GroupDto... expectedGroups) { UserDto userDto = db.users().selectUserByLogin(expectedLogin).get(); assertThat(userDto.isActive()).isTrue(); assertThat(userDto.getName()).isEqualTo(expectedName); assertThat(userDto.getEmail()).isEqualTo(expectedEmail); assertThat(userDto.getExternalLogin()).isEqualTo(expectedLogin); assertThat(userDto.getExternalIdentityProvider()).isEqualTo("sonarqube"); verityUserGroups(expectedLogin, expectedGroups); }
private void verifyThatUserIsDeactivated(String login) { Optional<UserDto> user = db.users().selectUserByLogin(login); assertThat(user).isPresent(); assertThat(user.get().isActive()).isFalse(); assertThat(user.get().getEmail()).isNull(); assertThat(user.get().getScmAccountsAsList()).isEmpty(); } }
private AddMemberWsResponse buildResponse(UserDto user, int groups) { AddMemberWsResponse.Builder response = AddMemberWsResponse.newBuilder(); User.Builder wsUser = User.newBuilder() .setLogin(user.getLogin()) .setName(user.getName()) .setGroupCount(groups); ofNullable(emptyToNull(user.getEmail())).ifPresent(text -> wsUser.setAvatar(avatarResolver.create(user))); response.setUser(wsUser); return response.build(); }
private static CreateWsResponse buildResponse(UserDto userDto) { CreateWsResponse.User.Builder userBuilder = CreateWsResponse.User.newBuilder() .setLogin(userDto.getLogin()) .setName(userDto.getName()) .setActive(userDto.isActive()) .setLocal(userDto.isLocal()) .addAllScmAccounts(userDto.getScmAccountsAsList()); ofNullable(emptyToNull(userDto.getEmail())).ifPresent(userBuilder::setEmail); return CreateWsResponse.newBuilder().setUser(userBuilder).build(); }
@Test public void indexOnStartup_adds_all_users_to_index() { UserDto user = db.users().insertUser(u -> u.setScmAccounts(asList("user_1", "u1"))); underTest.indexOnStartup(new HashSet<>()); List<UserDoc> docs = es.getDocuments(UserIndexDefinition.INDEX_TYPE_USER, UserDoc.class); assertThat(docs).hasSize(1); UserDoc doc = docs.get(0); assertThat(doc.uuid()).isEqualTo(user.getUuid()); assertThat(doc.login()).isEqualTo(user.getLogin()); assertThat(doc.name()).isEqualTo(user.getName()); assertThat(doc.email()).isEqualTo(user.getEmail()); assertThat(doc.active()).isEqualTo(user.isActive()); assertThat(doc.scmAccounts()).isEqualTo(user.getScmAccountsAsList()); assertThat(doc.organizationUuids()).isEmpty(); }
@Override public void callback(CallbackContext context) { throw new EmailAlreadyExistsRedirectionException(existingUser.getEmail(), existingUser, UserIdentity.builder() .setProviderLogin("john.github") .setLogin("john.github") .setName(existingUser.getName()) .setEmail(existingUser.getEmail()) .build(), this); } }
@Test public void select_by_email() { UserDto activeUser1 = db.users().insertUser(u -> u.setEmail("user1@email.com")); UserDto activeUser2 = db.users().insertUser(u -> u.setEmail("user1@email.com")); UserDto disableUser = db.users().insertUser(u -> u.setActive(false)); assertThat(underTest.selectByEmail(session, "user1@email.com")).hasSize(2); assertThat(underTest.selectByEmail(session, disableUser.getEmail())).isEmpty(); assertThat(underTest.selectByEmail(session, "unknown")).isEmpty(); }
@Override public void init(Context context) { throw new EmailAlreadyExistsRedirectionException(existingUser.getEmail(), existingUser, UserIdentity.builder() .setProviderLogin("john.github") .setLogin("john.github") .setName(existingUser.getName()) .setEmail(existingUser.getEmail()) .build(), this); } }
@Test public void update_only_user_name() { UserDto user = db.users().insertUser(newLocalUser(DEFAULT_LOGIN, "Marius", "marius@lesbronzes.fr") .setScmAccounts(asList("ma", "marius33")) .setSalt("salt") .setCryptedPassword("crypted password")); createDefaultGroup(); underTest.updateAndCommit(session, user, new UpdateUser() .setName("Marius2"), u -> { }); UserDto dto = dbClient.userDao().selectByLogin(session, DEFAULT_LOGIN); assertThat(dto.getName()).isEqualTo("Marius2"); // Following fields has not changed assertThat(dto.getEmail()).isEqualTo("marius@lesbronzes.fr"); assertThat(dto.getScmAccountsAsList()).containsOnly("ma", "marius33"); assertThat(dto.getSalt()).isEqualTo("salt"); assertThat(dto.getCryptedPassword()).isEqualTo("crypted password"); }
@Test public void blank_email_is_updated_to_null() { createUser(); ws.newRequest() .setParam("login", "john") .setParam("email", "") .execute() .assertJson(getClass(), "blank_email_is_updated_to_null.json"); UserDto userDto = dbClient.userDao().selectByLogin(dbSession, "john"); assertThat(userDto.getEmail()).isNull(); }
@Test public void does_not_update_user_when_no_change_and_scm_account_reordered() { UserDto user = newExternalUser(DEFAULT_LOGIN, "Marius", "marius@email.com") .setScmAccounts(asList("ma1", "ma2")); db.users().insertUser(user); createDefaultGroup(); underTest.updateAndCommit(session, user, new UpdateUser() .setName(user.getName()) .setEmail(user.getEmail()) .setScmAccounts(asList("ma2", "ma1")) .setExternalIdentity(new ExternalIdentity(user.getExternalIdentityProvider(), user.getExternalLogin(), user.getExternalId())), u -> { }); assertThat(dbClient.userDao().selectByLogin(session, DEFAULT_LOGIN).getUpdatedAt()).isEqualTo(user.getUpdatedAt()); }
@Test public void does_not_update_user_when_no_change() { UserDto user = newExternalUser(DEFAULT_LOGIN, "Marius", "marius@email.com") .setScmAccounts(asList("ma1", "ma2")); db.users().insertUser(user); createDefaultGroup(); underTest.updateAndCommit(session, user, new UpdateUser() .setName(user.getName()) .setEmail(user.getEmail()) .setScmAccounts(user.getScmAccountsAsList()) .setExternalIdentity(new ExternalIdentity(user.getExternalIdentityProvider(), user.getExternalLogin(), user.getExternalId())), u -> { }); assertThat(dbClient.userDao().selectByLogin(session, DEFAULT_LOGIN).getUpdatedAt()).isEqualTo(user.getUpdatedAt()); }