private static boolean updateName(UpdateUser updateUser, UserDto userDto, List<String> messages) { String name = updateUser.name(); if (updateUser.isNameChanged() && validateNameFormat(name, messages) && !Objects.equals(userDto.getName(), name)) { userDto.setName(name); return true; } return false; }
@Test public void assign() { UserDto user = newUserDto().setLogin("emmerik").setName("Emmerik"); boolean updated = underTest.assign(issue, user, context); assertThat(updated).isTrue(); assertThat(issue.assignee()).isEqualTo(user.getUuid()); assertThat(issue.mustSendNotifications()).isTrue(); FieldDiffs.Diff diff = issue.currentChange().get(ASSIGNEE); assertThat(diff.oldValue()).isEqualTo(UNUSED); assertThat(diff.newValue()).isEqualTo(user.getName()); }
@Test public void change_assignee() { UserDto user = newUserDto().setLogin("emmerik").setName("Emmerik"); issue.setAssigneeUuid("user_uuid"); boolean updated = underTest.assign(issue, user, context); assertThat(updated).isTrue(); assertThat(issue.assignee()).isEqualTo(user.getUuid()); assertThat(issue.mustSendNotifications()).isTrue(); FieldDiffs.Diff diff = issue.currentChange().get(ASSIGNEE); assertThat(diff.oldValue()).isEqualTo(UNUSED); assertThat(diff.newValue()).isEqualTo(user.getName()); }
@Test public void not_change_assignee() { UserDto user = newUserDto().setLogin("morgan").setName("Morgan"); issue.setAssigneeUuid(user.getUuid()); boolean updated = underTest.assign(issue, user, context); assertThat(updated).isFalse(); assertThat(issue.currentChange()).isNull(); assertThat(issue.mustSendNotifications()).isFalse(); }
@Test public void select_nullable_by_scm_account_return_many_results_when_same_email_is_used_by_many_users() { db.users().insertUser(user -> user.setLogin("marius").setName("Marius").setEmail("marius@lesbronzes.fr").setScmAccounts(asList("ma", "marius33"))); db.users().insertUser(user -> user.setLogin("sbrandhof").setName("Simon Brandhof").setEmail("marius@lesbronzes.fr").setScmAccounts((String) null)); List<UserDto> results = underTest.selectByScmAccountOrLoginOrEmail(session, "marius@lesbronzes.fr"); assertThat(results).hasSize(2); }
@Test public void select_nullable_by_scm_account() { db.users().insertUser(user -> user.setLogin("marius").setName("Marius").setEmail("marius@lesbronzes.fr").setScmAccounts(asList("ma", "marius33"))); db.users().insertUser(user -> user.setLogin("sbrandhof").setName("Simon Brandhof").setEmail("sbrandhof@lesbronzes.fr").setScmAccounts((String) null)); assertThat(underTest.selectByScmAccountOrLoginOrEmail(session, "ma")).extracting(UserDto::getLogin).containsExactly("marius"); assertThat(underTest.selectByScmAccountOrLoginOrEmail(session, "marius")).extracting(UserDto::getLogin).containsExactly("marius"); assertThat(underTest.selectByScmAccountOrLoginOrEmail(session, "marius@lesbronzes.fr")).extracting(UserDto::getLogin).containsExactly("marius"); assertThat(underTest.selectByScmAccountOrLoginOrEmail(session, "m")).isEmpty(); assertThat(underTest.selectByScmAccountOrLoginOrEmail(session, "unknown")).isEmpty(); }
@Test public void selectUsersByQuery_only_actives() { db.users().insertUser(user -> user.setLogin("user").setName("User")); db.users().insertUser(user -> user.setLogin("inactive_user").setName("Disabled").setActive(false)); List<UserDto> users = underTest.selectUsers(session, UserQuery.ALL_ACTIVES); assertThat(users).extracting(UserDto::getName).containsExactlyInAnyOrder("User"); }
@Test public void createForUser_gives_all_permissions_for_new_organization_to_current_user() { UserDto user = db.users().insertUser(dto -> dto.setLogin(A_LOGIN).setName(A_NAME)); 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(dbClient.userPermissionDao().selectGlobalPermissionsOfUser(dbSession, user.getId(), organization.getUuid())) .containsOnly(GlobalPermissions.ALL.toArray(new String[GlobalPermissions.ALL.size()])); }
public static UserDto newLocalUser(String login, String name, @Nullable String email) { return newUserDto() .setLocal(true) .setName(name) .setEmail(email) .setLogin(login) .setExternalId(login) .setExternalLogin(login) .setExternalIdentityProvider("sonarqube"); }
private UserDto insertUser() { return db.users().insertUser(newUserDto() .setActive(true) .setEmail("john@email.com") .setLogin(USER_LOGIN) .setName("John") .setScmAccounts(singletonList("jn"))); }
@Test public void selectUsersByQuery_search_by_login_text() { db.users().insertUser(user -> user.setLogin("user").setName("User")); db.users().insertUser(user -> user.setLogin("sbrandhof").setName("Simon Brandhof")); List<UserDto> users = underTest.selectUsers(session, UserQuery.builder().searchText("sbr").build()); assertThat(users).extracting(UserDto::getLogin).containsExactlyInAnyOrder("sbrandhof"); }
@Test public void selectUsersByQuery_search_by_name_text() { db.users().insertUser(user -> user.setLogin("user").setName("User")); db.users().insertUser(user -> user.setLogin("sbrandhof").setName("Simon Brandhof")); List<UserDto> users = underTest.selectUsers(session, UserQuery.builder().searchText("Simon").build()); assertThat(users).extracting(UserDto::getLogin).containsExactlyInAnyOrder("sbrandhof"); }
@Test public void selectUsersByQuery_filter_by_login() { db.users().insertUser(user -> user.setLogin("user").setName("User")); db.users().insertUser(user -> user.setLogin("inactive_user").setName("Disabled").setActive(false)); List<UserDto> users = underTest.selectUsers(session, UserQuery.builder().logins("user", "john").build()); assertThat(users).extracting(UserDto::getName).containsExactlyInAnyOrder("User"); }
@Test public void createForUser_add_current_user_as_member_of_organization() { UserDto user = db.users().insertUser(dto -> dto.setLogin(A_LOGIN).setName(A_NAME)); 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(dbClient.organizationMemberDao().select(dbSession, organization.getUuid(), user.getId())).isPresent(); }
public static UserDto newExternalUser(String login, String name, @Nullable String email) { return newUserDto() .setLocal(false) .setName(name) .setEmail(email) .setLogin(login) .setExternalId(randomAlphanumeric(40)) .setExternalLogin(randomAlphanumeric(40)) .setExternalIdentityProvider(randomAlphanumeric(40)); }
@Test public void search_for_users_with_response_example() { UserDto user1 = insertUser(newUserDto().setLogin("admin").setName("Administrator").setEmail("admin@admin.com")); UserDto user2 = insertUser(newUserDto().setLogin("george.orwell").setName("George Orwell").setEmail("george.orwell@1984.net")); PermissionTemplateDto template1 = addTemplateToDefaultOrganization(); addUserToTemplate(newPermissionTemplateUser(CODEVIEWER, template1, user1)); addUserToTemplate(newPermissionTemplateUser(CODEVIEWER, template1, user2)); addUserToTemplate(newPermissionTemplateUser(ADMIN, template1, user2)); loginAsAdmin(db.getDefaultOrganization()); String result = newRequest(null, template1.getUuid()).execute().getInput(); assertJson(result).isSimilarTo(getClass().getResource("template_users-example.json")); }
@Test public void update_user_when_authenticating_exiting_user() { startWithSso(); setNotUserInToken(); insertUser(newUserDto().setLogin(DEFAULT_LOGIN).setName("old name").setEmail("old email"), group1); // Name, email and groups are different HttpServletRequest request = createRequest(DEFAULT_LOGIN, DEFAULT_NAME, DEFAULT_EMAIL, GROUP2); underTest.authenticate(request, response); verifyUserInDb(DEFAULT_LOGIN, DEFAULT_NAME, DEFAULT_EMAIL, group2); verifyTokenIsUpdated(NOW); verify(authenticationEvent).loginSuccess(request, DEFAULT_LOGIN, Source.sso()); }
@Before public void setUp() throws Exception { organizationDto = db.organizations().insert(); user1 = db.users().insertUser(u -> u.setLogin("admin login").setName("Admin name").setEmail("admin@email.com")); user2 = db.users().insertUser(u -> u.setLogin("not.admin").setName("Not Admin").setEmail("Not Admin")); user3 = db.users().insertUser(u -> u.setLogin("inactive").setActive(false)); group1 = db.users().insertGroup(organizationDto, "sonar-administrators"); group2 = db.users().insertGroup(organizationDto, "sonar-users"); group3 = db.users().insertGroup(organizationDto, "sonar-reviewers"); db.organizations().addMember(organizationDto, user1); db.organizations().addMember(organizationDto, user2); }
@Test public void authenticate_existing_user_and_add_new_groups() { organizationFlags.setEnabled(true); UserDto user = db.users().insertUser(newUserDto() .setLogin(USER_LOGIN) .setActive(true) .setName("John")); GroupDto group1 = db.users().insertGroup(db.getDefaultOrganization(), "group1"); GroupDto group2 = db.users().insertGroup(db.getDefaultOrganization(), "group2"); authenticate(USER_LOGIN, "group1", "group2", "group3"); checkGroupMembership(user, group1, group2); }
@Test public void test_response_example() { logInAsRoot(); UserDto user = UserTesting.newUserDto().setLogin("daniel").setName("Daniel").setEmail("daniel@corp.com"); UserDto rootDto = userDao.insert(dbSession, user); userDao.setRoot(dbSession, rootDto.getLogin(), true); dbSession.commit(); TestResponse response = wsTester.newRequest().setMediaType(MediaTypes.JSON).execute(); assertJson(response.getInput()).isSimilarTo(wsTester.getDef().responseExampleAsString()); }