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 Collection<GroupDto> loadGroups() { if (this.userDto == null) { return Collections.emptyList(); } try (DbSession dbSession = dbClient.openSession(false)) { return dbClient.groupDao().selectByUserLogin(dbSession, userDto.getLogin()); } }
public UserDto reactivateAndCommit(DbSession dbSession, UserDto disabledUser, NewUser newUser, Consumer<UserDto> beforeCommit, UserDto... otherUsersToIndex) { checkArgument(!disabledUser.isActive(), "An active user with login '%s' already exists", disabledUser.getLogin()); reactivateUser(dbSession, disabledUser, newUser); return commitUser(dbSession, disabledUser, beforeCommit, otherUsersToIndex); }
private void checkMembership(DbSession dbSession, OrganizationDto organization, UserDto user) { checkArgument(dbClient.organizationMemberDao().select(dbSession, organization.getUuid(), user.getId()).isPresent(), "User '%s' is not member of organization '%s'", user.getLogin(), organization.getKey()); } }
/** * The generation of the authentication event should not prevent the removal of JWT cookie, that's why it's done in a separate method */ private void generateAuthenticationEvent(HttpServletRequest request, HttpServletResponse response) { try { Optional<JwtHttpHandler.Token> token = jwtHttpHandler.getToken(request, response); String userLogin = token.isPresent() ? token.get().getUserDto().getLogin() : null; authenticationEvent.logoutSuccess(request, userLogin); } catch (AuthenticationException e) { authenticationEvent.logoutFailure(request, e.getMessage()); } }
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 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 UserDto authenticate(Credentials credentials, HttpServletRequest request) { if (!credentials.getPassword().isPresent()) { UserDto userDto = authenticateFromUserToken(credentials.getLogin()); authenticationEvent.loginSuccess(request, userDto.getLogin(), Source.local(Method.BASIC_TOKEN)); return userDto; } return credentialsAuthentication.authenticate(credentials, request, Method.BASIC); }
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(); }
@Test public void count_groups_by_logins() { db.users().insertMember(group1, user1); db.users().insertMember(group2, user1); db.users().insertMember(group3, user1); db.users().insertMember(group2, user2); assertThat(underTest.selectGroupsByLogins(db.getSession(), emptyList()).keys()).isEmpty(); Multimap<String, String> groupsByLogin = underTest.selectGroupsByLogins(db.getSession(), asList(user1.getLogin(), user2.getLogin(), user3.getLogin())); assertThat(groupsByLogin.get(user1.getLogin())).containsOnly(group1.getName(), group2.getName(), group3.getName()); assertThat(groupsByLogin.get(user2.getLogin())).containsOnly(group2.getName()); assertThat(groupsByLogin.get(user3.getLogin())).isEmpty(); }
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(); }
private static Roots.RootContent toRoot(Roots.RootContent.Builder builder, UserDto dto) { builder.clear(); builder.setLogin(dto.getLogin()); if (dto.getName() != null) { builder.setName(dto.getName()); } if (dto.getEmail() != null) { builder.setEmail(dto.getEmail()); } return builder.build(); }
@Test public void fail_if_template_uuid_and_name_are_missing() throws Exception { loginAsAdmin(db.getDefaultOrganization()); expectedException.expect(BadRequestException.class); newRequest(user.getLogin(), null, CODEVIEWER); }
@Test public void fail_if_insufficient_permissions() { userSession.logIn().addPermission(ADMINISTER_QUALITY_GATES, organization); expectedException.expect(ForbiddenException.class); call(organization.getKey(), user.getLogin()); }
@Test public void fail_if_not_admin_of_default_organization() throws Exception { userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, db.getDefaultOrganization()); expectedException.expect(ForbiddenException.class); newRequest(user.getLogin(), permissionTemplate.getUuid(), CODEVIEWER); }
@Test public void add_permission_to_user_on_default_organization_if_organization_is_not_specified() { loginAsAdmin(db.getDefaultOrganization()); newRequest() .setParam(PARAM_USER_LOGIN, user.getLogin()) .setParam(PARAM_PERMISSION, SYSTEM_ADMIN) .execute(); assertThat(db.users().selectPermissionsOfUser(user, db.getDefaultOrganization())).containsOnly(ADMINISTER); }
@Test public void remove_permission_from_user() { db.users().insertPermissionOnUser(user, PROVISION_PROJECTS); db.users().insertPermissionOnUser(user, ADMINISTER_QUALITY_GATES); loginAsAdmin(db.getDefaultOrganization()); newRequest() .setParam(PARAM_USER_LOGIN, user.getLogin()) .setParam(PARAM_PERMISSION, QUALITY_GATE_ADMIN) .execute(); assertThat(db.users().selectPermissionsOfUser(user, db.getDefaultOrganization())).containsOnly(PROVISION_PROJECTS); }
private void failIfComponentIsNotAProjectOrView(ComponentDto file) { loginAsAdmin(db.getDefaultOrganization()); expectedException.expect(BadRequestException.class); expectedException.expectMessage("Component '" + file.getDbKey() + "' (id: " + file.uuid() + ") must be a project or a view."); newRequest() .setParam(PARAM_USER_LOGIN, user.getLogin()) .setParam(PARAM_PROJECT_ID, file.uuid()) .setParam(PARAM_PERMISSION, SYSTEM_ADMIN) .execute(); }
@Test public void authenticate_new_user_and_force_default_group_when_organizations_are_disabled() { organizationFlags.setEnabled(false); UserDto user = db.users().insertUser(); GroupDto group1 = db.users().insertGroup(db.getDefaultOrganization(), "group1"); GroupDto defaultGroup = insertDefaultGroup(); db.users().insertMember(group1, user); db.users().insertMember(defaultGroup, user); authenticate(user.getLogin(), "group1"); checkGroupMembership(user, group1, defaultGroup); }
@Test public void does_not_force_default_group_when_authenticating_new_user_if_organizations_are_enabled() { organizationFlags.setEnabled(true); UserDto user = db.users().insertUser(); GroupDto group1 = db.users().insertGroup(db.getDefaultOrganization(), "group1"); GroupDto defaultGroup = insertDefaultGroup(); db.users().insertMember(group1, user); db.users().insertMember(defaultGroup, user); authenticate(user.getLogin(), "group1"); checkGroupMembership(user, group1); }