Skip to content

Commit

Permalink
SONAR-9016 Fail when no default group found
Browse files Browse the repository at this point in the history
  • Loading branch information
julienlancelot committed Apr 13, 2017
1 parent 005949a commit 8e24100
Show file tree
Hide file tree
Showing 13 changed files with 188 additions and 58 deletions.
Expand Up @@ -33,6 +33,7 @@
import org.sonar.db.user.UserGroupDto; import org.sonar.db.user.UserGroupDto;
import org.sonar.server.user.UserSession; import org.sonar.server.user.UserSession;
import org.sonar.server.user.index.UserIndexer; import org.sonar.server.user.index.UserIndexer;
import org.sonar.server.usergroups.DefaultGroupFinder;


import static org.sonar.server.organization.ws.OrganizationsWsSupport.PARAM_LOGIN; import static org.sonar.server.organization.ws.OrganizationsWsSupport.PARAM_LOGIN;
import static org.sonar.server.organization.ws.OrganizationsWsSupport.PARAM_ORGANIZATION; import static org.sonar.server.organization.ws.OrganizationsWsSupport.PARAM_ORGANIZATION;
Expand All @@ -44,11 +45,13 @@ public class AddMemberAction implements OrganizationsWsAction {
private final DbClient dbClient; private final DbClient dbClient;
private final UserSession userSession; private final UserSession userSession;
private final UserIndexer userIndexer; private final UserIndexer userIndexer;
private final DefaultGroupFinder defaultGroupFinder;


public AddMemberAction(DbClient dbClient, UserSession userSession, UserIndexer userIndexer) { public AddMemberAction(DbClient dbClient, UserSession userSession, UserIndexer userIndexer, DefaultGroupFinder defaultGroupFinder) {
this.dbClient = dbClient; this.dbClient = dbClient;
this.userSession = userSession; this.userSession = userSession;
this.userIndexer = userIndexer; this.userIndexer = userIndexer;
this.defaultGroupFinder = defaultGroupFinder;
} }


@Override @Override
Expand Down Expand Up @@ -91,7 +94,8 @@ public void handle(Request request, Response response) throws Exception {
dbClient.organizationMemberDao().insert(dbSession, new OrganizationMemberDto() dbClient.organizationMemberDao().insert(dbSession, new OrganizationMemberDto()
.setOrganizationUuid(organization.getUuid()) .setOrganizationUuid(organization.getUuid())
.setUserId(user.getId())); .setUserId(user.getId()));
dbClient.userGroupDao().insert(dbSession, new UserGroupDto().setGroupId(getDefaultGroupId(dbSession, organization)).setUserId(user.getId())); dbClient.userGroupDao().insert(dbSession,
new UserGroupDto().setGroupId(defaultGroupFinder.findDefaultGroup(dbSession, organization.getUuid()).getId()).setUserId(user.getId()));
dbSession.commit(); dbSession.commit();
userIndexer.index(user.getLogin()); userIndexer.index(user.getLogin());
} }
Expand All @@ -102,9 +106,4 @@ private boolean isMemberOf(DbSession dbSession, OrganizationDto organizationDto,
return dbClient.organizationMemberDao().select(dbSession, organizationDto.getUuid(), userDto.getId()).isPresent(); return dbClient.organizationMemberDao().select(dbSession, organizationDto.getUuid(), userDto.getId()).isPresent();
} }


int getDefaultGroupId(DbSession dbSession, OrganizationDto organizationDto) {
return dbClient.organizationDao().getDefaultGroupId(dbSession, organizationDto.getUuid())
.orElseThrow(() -> new IllegalStateException(String.format("Default group doesn't exist on default organization '%s'", organizationDto.getKey())));
}

} }
Expand Up @@ -35,6 +35,7 @@
import org.sonar.server.organization.OrganizationFlags; import org.sonar.server.organization.OrganizationFlags;
import org.sonar.server.user.UserSession; import org.sonar.server.user.UserSession;
import org.sonar.server.usergroups.DefaultGroupCreator; import org.sonar.server.usergroups.DefaultGroupCreator;
import org.sonar.server.usergroups.DefaultGroupFinder;


import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNull;


Expand All @@ -46,14 +47,16 @@ public class EnableSupportAction implements OrganizationsWsAction {
private final DefaultOrganizationProvider defaultOrganizationProvider; private final DefaultOrganizationProvider defaultOrganizationProvider;
private final OrganizationFlags organizationFlags; private final OrganizationFlags organizationFlags;
private final DefaultGroupCreator defaultGroupCreator; private final DefaultGroupCreator defaultGroupCreator;
private final DefaultGroupFinder defaultGroupFinder;


public EnableSupportAction(UserSession userSession, DbClient dbClient, DefaultOrganizationProvider defaultOrganizationProvider, public EnableSupportAction(UserSession userSession, DbClient dbClient, DefaultOrganizationProvider defaultOrganizationProvider,
OrganizationFlags organizationFlags, DefaultGroupCreator defaultGroupCreator) { OrganizationFlags organizationFlags, DefaultGroupCreator defaultGroupCreator, DefaultGroupFinder defaultGroupFinder) {
this.userSession = userSession; this.userSession = userSession;
this.dbClient = dbClient; this.dbClient = dbClient;
this.defaultOrganizationProvider = defaultOrganizationProvider; this.defaultOrganizationProvider = defaultOrganizationProvider;
this.organizationFlags = organizationFlags; this.organizationFlags = organizationFlags;
this.defaultGroupCreator = defaultGroupCreator; this.defaultGroupCreator = defaultGroupCreator;
this.defaultGroupFinder = defaultGroupFinder;
} }


@Override @Override
Expand Down Expand Up @@ -97,8 +100,7 @@ private void flagCurrentUserAsRoot(DbSession dbSession) {


private void createDefaultMembersGroup(DbSession dbSession) { private void createDefaultMembersGroup(DbSession dbSession) {
String defaultOrganizationUuid = defaultOrganizationProvider.get().getUuid(); String defaultOrganizationUuid = defaultOrganizationProvider.get().getUuid();
int sonarUsersGroupId = dbClient.organizationDao().getDefaultGroupId(dbSession, defaultOrganizationUuid) GroupDto sonarUsersGroupId = defaultGroupFinder.findDefaultGroup(dbSession, defaultOrganizationUuid);
.orElseThrow(() -> new IllegalStateException(String.format("Default group doesn't exist on default organization '%s'", defaultOrganizationProvider.get().getKey())));
GroupDto members = defaultGroupCreator.create(dbSession, defaultOrganizationUuid); GroupDto members = defaultGroupCreator.create(dbSession, defaultOrganizationUuid);
copySonarUsersGroupPermissionsToMembersGroup(dbSession, sonarUsersGroupId, members); copySonarUsersGroupPermissionsToMembersGroup(dbSession, sonarUsersGroupId, members);
copySonarUsersGroupPermissionTemplatesToMembersGroup(dbSession, sonarUsersGroupId, members); copySonarUsersGroupPermissionTemplatesToMembersGroup(dbSession, sonarUsersGroupId, members);
Expand All @@ -110,9 +112,9 @@ private void associateMembersOfDefaultOrganizationToGroup(DbSession dbSession, G
organizationMembers.forEach(member -> dbClient.userGroupDao().insert(dbSession, new UserGroupDto().setGroupId(membersGroup.getId()).setUserId(member))); organizationMembers.forEach(member -> dbClient.userGroupDao().insert(dbSession, new UserGroupDto().setGroupId(membersGroup.getId()).setUserId(member)));
} }


private void copySonarUsersGroupPermissionsToMembersGroup(DbSession dbSession, int sonarUsersGroupId, GroupDto membersGroup) { private void copySonarUsersGroupPermissionsToMembersGroup(DbSession dbSession, GroupDto sonarUsersGroup, GroupDto membersGroup) {
String defaultOrganizationUuid = defaultOrganizationProvider.get().getUuid(); String defaultOrganizationUuid = defaultOrganizationProvider.get().getUuid();
dbClient.groupPermissionDao().selectAllPermissionsByGroupId(dbSession, defaultOrganizationUuid, sonarUsersGroupId, dbClient.groupPermissionDao().selectAllPermissionsByGroupId(dbSession, defaultOrganizationUuid, sonarUsersGroup.getId(),
context -> { context -> {
GroupPermissionDto groupPermissionDto = (GroupPermissionDto) context.getResultObject(); GroupPermissionDto groupPermissionDto = (GroupPermissionDto) context.getResultObject();
dbClient.groupPermissionDao().insert(dbSession, dbClient.groupPermissionDao().insert(dbSession,
Expand All @@ -122,8 +124,9 @@ private void copySonarUsersGroupPermissionsToMembersGroup(DbSession dbSession, i
}); });
} }


private void copySonarUsersGroupPermissionTemplatesToMembersGroup(DbSession dbSession, int sonarUsersGroupId, GroupDto membersGroup) { private void copySonarUsersGroupPermissionTemplatesToMembersGroup(DbSession dbSession, GroupDto sonarUsersGroup, GroupDto membersGroup) {
List<PermissionTemplateGroupDto> sonarUsersPermissionTemplates = dbClient.permissionTemplateDao().selectAllGroupPermissionTemplatesByGroupId(dbSession, sonarUsersGroupId); List<PermissionTemplateGroupDto> sonarUsersPermissionTemplates = dbClient.permissionTemplateDao().selectAllGroupPermissionTemplatesByGroupId(dbSession,
sonarUsersGroup.getId());
sonarUsersPermissionTemplates.forEach(permissionTemplateGroup -> dbClient.permissionTemplateDao().insertGroupPermission(dbSession, sonarUsersPermissionTemplates.forEach(permissionTemplateGroup -> dbClient.permissionTemplateDao().insertGroupPermission(dbSession,
permissionTemplateGroup.getTemplateId(), membersGroup.getId(), permissionTemplateGroup.getPermission())); permissionTemplateGroup.getTemplateId(), membersGroup.getId(), permissionTemplateGroup.getPermission()));
} }
Expand Down
Expand Up @@ -207,6 +207,7 @@
import org.sonar.server.user.index.UserIndexer; import org.sonar.server.user.index.UserIndexer;
import org.sonar.server.user.ws.UsersWsModule; import org.sonar.server.user.ws.UsersWsModule;
import org.sonar.server.usergroups.DefaultGroupCreatorImpl; import org.sonar.server.usergroups.DefaultGroupCreatorImpl;
import org.sonar.server.usergroups.DefaultGroupFinder;
import org.sonar.server.usergroups.ws.UserGroupsModule; import org.sonar.server.usergroups.ws.UserGroupsModule;
import org.sonar.server.usertoken.UserTokenModule; import org.sonar.server.usertoken.UserTokenModule;
import org.sonar.server.util.TypeValidationModule; import org.sonar.server.util.TypeValidationModule;
Expand Down Expand Up @@ -354,6 +355,7 @@ protected void configureLevel() {
// groups // groups
UserGroupsModule.class, UserGroupsModule.class,
DefaultGroupCreatorImpl.class, DefaultGroupCreatorImpl.class,
DefaultGroupFinder.class,


// permissions // permissions
DefaultTemplatesResolverImpl.class, DefaultTemplatesResolverImpl.class,
Expand Down
Expand Up @@ -34,11 +34,13 @@
import org.sonar.db.DbSession; import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto; import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.permission.OrganizationPermission; import org.sonar.db.permission.OrganizationPermission;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.GroupMembershipDto; import org.sonar.db.user.GroupMembershipDto;
import org.sonar.db.user.GroupMembershipQuery; import org.sonar.db.user.GroupMembershipQuery;
import org.sonar.db.user.UserDto; import org.sonar.db.user.UserDto;
import org.sonar.server.organization.DefaultOrganizationProvider; import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.user.UserSession; import org.sonar.server.user.UserSession;
import org.sonar.server.usergroups.DefaultGroupFinder;
import org.sonarqube.ws.WsUsers.GroupsWsResponse; import org.sonarqube.ws.WsUsers.GroupsWsResponse;
import org.sonarqube.ws.WsUsers.GroupsWsResponse.Group; import org.sonarqube.ws.WsUsers.GroupsWsResponse.Group;
import org.sonarqube.ws.client.user.GroupsRequest; import org.sonarqube.ws.client.user.GroupsRequest;
Expand All @@ -62,11 +64,13 @@ public class GroupsAction implements UsersWsAction {
private final DbClient dbClient; private final DbClient dbClient;
private final UserSession userSession; private final UserSession userSession;
private final DefaultOrganizationProvider defaultOrganizationProvider; private final DefaultOrganizationProvider defaultOrganizationProvider;
private final DefaultGroupFinder defaultGroupFinder;


public GroupsAction(DbClient dbClient, UserSession userSession, DefaultOrganizationProvider defaultOrganizationProvider) { public GroupsAction(DbClient dbClient, UserSession userSession, DefaultOrganizationProvider defaultOrganizationProvider, DefaultGroupFinder defaultGroupFinder) {
this.dbClient = dbClient; this.dbClient = dbClient;
this.userSession = userSession; this.userSession = userSession;
this.defaultOrganizationProvider = defaultOrganizationProvider; this.defaultOrganizationProvider = defaultOrganizationProvider;
this.defaultGroupFinder = defaultGroupFinder;
} }


@Override @Override
Expand Down Expand Up @@ -106,7 +110,6 @@ private GroupsWsResponse doHandle(GroupsRequest request) {
try (DbSession dbSession = dbClient.openSession(false)) { try (DbSession dbSession = dbClient.openSession(false)) {
OrganizationDto organization = findOrganizationByKey(dbSession, request.getOrganization()); OrganizationDto organization = findOrganizationByKey(dbSession, request.getOrganization());
userSession.checkPermission(OrganizationPermission.ADMINISTER, organization); userSession.checkPermission(OrganizationPermission.ADMINISTER, organization);
Optional<Integer> defaultGroupId = dbClient.organizationDao().getDefaultGroupId(dbSession, organization.getUuid());


String login = request.getLogin(); String login = request.getLogin();
GroupMembershipQuery query = GroupMembershipQuery.builder() GroupMembershipQuery query = GroupMembershipQuery.builder()
Expand All @@ -120,7 +123,7 @@ private GroupsWsResponse doHandle(GroupsRequest request) {
int total = dbClient.groupMembershipDao().countGroups(dbSession, query, user.getId()); int total = dbClient.groupMembershipDao().countGroups(dbSession, query, user.getId());
Paging paging = forPageIndex(query.pageIndex()).withPageSize(query.pageSize()).andTotal(total); Paging paging = forPageIndex(query.pageIndex()).withPageSize(query.pageSize()).andTotal(total);
List<GroupMembershipDto> groups = dbClient.groupMembershipDao().selectGroups(dbSession, query, user.getId(), paging.offset(), query.pageSize()); List<GroupMembershipDto> groups = dbClient.groupMembershipDao().selectGroups(dbSession, query, user.getId(), paging.offset(), query.pageSize());
return buildResponse(groups, defaultGroupId, paging); return buildResponse(groups, defaultGroupFinder.findDefaultGroup(dbSession, organization.getUuid()), paging);
} }
} }


Expand Down Expand Up @@ -155,9 +158,9 @@ private static String getMembership(String selected) {
return membership; return membership;
} }


private static GroupsWsResponse buildResponse(List<GroupMembershipDto> groups, Optional<Integer> defaultGroupId, Paging paging) { private static GroupsWsResponse buildResponse(List<GroupMembershipDto> groups, GroupDto defaultGroup, Paging paging) {
GroupsWsResponse.Builder responseBuilder = GroupsWsResponse.newBuilder(); GroupsWsResponse.Builder responseBuilder = GroupsWsResponse.newBuilder();
groups.forEach(group -> responseBuilder.addGroups(toWsGroup(group, defaultGroupId))); groups.forEach(group -> responseBuilder.addGroups(toWsGroup(group, defaultGroup)));
responseBuilder.getPagingBuilder() responseBuilder.getPagingBuilder()
.setPageIndex(paging.pageIndex()) .setPageIndex(paging.pageIndex())
.setPageSize(paging.pageSize()) .setPageSize(paging.pageSize())
Expand All @@ -166,12 +169,12 @@ private static GroupsWsResponse buildResponse(List<GroupMembershipDto> groups, O
return responseBuilder.build(); return responseBuilder.build();
} }


private static Group toWsGroup(GroupMembershipDto group, Optional<Integer> defaultGroupId) { private static Group toWsGroup(GroupMembershipDto group, GroupDto defaultGroup) {
Group.Builder groupBuilder = Group.newBuilder() Group.Builder groupBuilder = Group.newBuilder()
.setId(group.getId()) .setId(group.getId())
.setName(group.getName()) .setName(group.getName())
.setSelected(group.getUserId() != null); .setSelected(group.getUserId() != null)
defaultGroupId.ifPresent(defaultGroup -> groupBuilder.setDefault(defaultGroup.longValue() == group.getId())); .setDefault(defaultGroup.getId().longValue() == group.getId());
Protobuf.setNullable(group.getDescription(), groupBuilder::setDescription); Protobuf.setNullable(group.getDescription(), groupBuilder::setDescription);
return groupBuilder.build(); return groupBuilder.build();
} }
Expand Down
@@ -0,0 +1,44 @@
/*
* SonarQube
* Copyright (C) 2009-2017 SonarSource SA
* mailto:info AT sonarsource DOT com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

package org.sonar.server.usergroups;

import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.user.GroupDto;

import static java.lang.String.format;
import static java.util.Objects.requireNonNull;

public class DefaultGroupFinder {

private final DbClient dbClient;

public DefaultGroupFinder(DbClient dbClient) {
this.dbClient = dbClient;
}

public GroupDto findDefaultGroup(DbSession dbSession, String organizationUuid) {
int defaultGroupId = dbClient.organizationDao().getDefaultGroupId(dbSession, organizationUuid)
.orElseThrow(() -> new IllegalStateException(format("Default group cannot be found on organization '%s'", organizationUuid)));
return requireNonNull(dbClient.groupDao().selectById(dbSession, defaultGroupId), format("Group '%s' cannot be found", defaultGroupId));
}

}
Expand Up @@ -130,10 +130,6 @@ public OrganizationDto findOrganizationByKey(DbSession dbSession, @Nullable Stri
return org.get(); return org.get();
} }


public Optional<Integer> findDefaultGroupId(DbSession dbSession, OrganizationDto organization) {
return dbClient.organizationDao().getDefaultGroupId(dbSession, organization.getUuid());
}

/** /**
* Similar to {@link UserGroupValidation#validateGroupName(String)} but kept internal. No need to publish * Similar to {@link UserGroupValidation#validateGroupName(String)} but kept internal. No need to publish
* this method in public API. * this method in public API.
Expand Down
Expand Up @@ -23,7 +23,6 @@
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import java.util.Set; import java.util.Set;
import org.sonar.api.server.ws.Change; import org.sonar.api.server.ws.Change;
import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Request;
Expand All @@ -39,6 +38,7 @@
import org.sonar.db.user.GroupDto; import org.sonar.db.user.GroupDto;
import org.sonar.server.es.SearchOptions; import org.sonar.server.es.SearchOptions;
import org.sonar.server.user.UserSession; import org.sonar.server.user.UserSession;
import org.sonar.server.usergroups.DefaultGroupFinder;


import static org.apache.commons.lang.StringUtils.defaultIfBlank; import static org.apache.commons.lang.StringUtils.defaultIfBlank;
import static org.sonar.api.utils.Paging.forPageIndex; import static org.sonar.api.utils.Paging.forPageIndex;
Expand All @@ -60,11 +60,13 @@ public class SearchAction implements UserGroupsWsAction {
private final DbClient dbClient; private final DbClient dbClient;
private final UserSession userSession; private final UserSession userSession;
private final GroupWsSupport groupWsSupport; private final GroupWsSupport groupWsSupport;
private final DefaultGroupFinder defaultGroupFinder;


public SearchAction(DbClient dbClient, UserSession userSession, GroupWsSupport groupWsSupport) { public SearchAction(DbClient dbClient, UserSession userSession, GroupWsSupport groupWsSupport, DefaultGroupFinder defaultGroupFinder) {
this.dbClient = dbClient; this.dbClient = dbClient;
this.userSession = userSession; this.userSession = userSession;
this.groupWsSupport = groupWsSupport; this.groupWsSupport = groupWsSupport;
this.defaultGroupFinder = defaultGroupFinder;
} }


@Override @Override
Expand Down Expand Up @@ -101,14 +103,14 @@ public void handle(Request request, Response response) throws Exception {
try (DbSession dbSession = dbClient.openSession(false)) { try (DbSession dbSession = dbClient.openSession(false)) {
OrganizationDto organization = groupWsSupport.findOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION_KEY)); OrganizationDto organization = groupWsSupport.findOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION_KEY));
userSession.checkLoggedIn().checkPermission(ADMINISTER, organization); userSession.checkLoggedIn().checkPermission(ADMINISTER, organization);
Optional<Integer> defaultGroupId = groupWsSupport.findDefaultGroupId(dbSession, organization); GroupDto defaultGroup = defaultGroupFinder.findDefaultGroup(dbSession, organization.getUuid());


int limit = dbClient.groupDao().countByQuery(dbSession, organization.getUuid(), query); int limit = dbClient.groupDao().countByQuery(dbSession, organization.getUuid(), query);
Paging paging = forPageIndex(page).withPageSize(pageSize).andTotal(limit); Paging paging = forPageIndex(page).withPageSize(pageSize).andTotal(limit);
List<GroupDto> groups = dbClient.groupDao().selectByQuery(dbSession, organization.getUuid(), query, options.getOffset(), pageSize); List<GroupDto> groups = dbClient.groupDao().selectByQuery(dbSession, organization.getUuid(), query, options.getOffset(), pageSize);
List<Integer> groupIds = groups.stream().map(GroupDto::getId).collect(MoreCollectors.toList(groups.size())); List<Integer> groupIds = groups.stream().map(GroupDto::getId).collect(MoreCollectors.toList(groups.size()));
Map<String, Integer> userCountByGroup = dbClient.groupMembershipDao().countUsersByGroups(dbSession, groupIds); Map<String, Integer> userCountByGroup = dbClient.groupMembershipDao().countUsersByGroups(dbSession, groupIds);
writeProtobuf(buildResponse(groups, userCountByGroup, fields, paging, defaultGroupId), request, response); writeProtobuf(buildResponse(groups, userCountByGroup, fields, paging, defaultGroup), request, response);
} }
} }


Expand All @@ -123,10 +125,10 @@ private static Set<String> neededFields(Request request) {
return fields; return fields;
} }


private static SearchWsResponse buildResponse(List<GroupDto> groups, Map<String, Integer> userCountByGroup, Set<String> fields, Paging paging, Optional<Integer> defaultGroupId) { private static SearchWsResponse buildResponse(List<GroupDto> groups, Map<String, Integer> userCountByGroup, Set<String> fields, Paging paging, GroupDto defaultGroup) {
SearchWsResponse.Builder responseBuilder = SearchWsResponse.newBuilder(); SearchWsResponse.Builder responseBuilder = SearchWsResponse.newBuilder();
groups.forEach(group -> responseBuilder groups.forEach(group -> responseBuilder
.addGroups(toWsGroup(group, userCountByGroup.get(group.getName()), fields, defaultGroupId.isPresent() && defaultGroupId.get().equals(group.getId())))); .addGroups(toWsGroup(group, userCountByGroup.get(group.getName()), fields, defaultGroup.getId().equals(group.getId()))));
responseBuilder.getPagingBuilder() responseBuilder.getPagingBuilder()
.setPageIndex(paging.pageIndex()) .setPageIndex(paging.pageIndex())
.setPageSize(paging.pageSize()) .setPageSize(paging.pageSize())
Expand Down
Expand Up @@ -45,6 +45,7 @@
import org.sonar.server.user.index.UserIndexDefinition; import org.sonar.server.user.index.UserIndexDefinition;
import org.sonar.server.user.index.UserIndexer; import org.sonar.server.user.index.UserIndexer;
import org.sonar.server.user.index.UserQuery; import org.sonar.server.user.index.UserQuery;
import org.sonar.server.usergroups.DefaultGroupFinder;
import org.sonar.server.ws.TestRequest; import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.TestResponse; import org.sonar.server.ws.TestResponse;
import org.sonar.server.ws.WsActionTester; import org.sonar.server.ws.WsActionTester;
Expand All @@ -71,7 +72,7 @@ public class AddMemberActionTest {
private DbClient dbClient = db.getDbClient(); private DbClient dbClient = db.getDbClient();
private DbSession dbSession = db.getSession(); private DbSession dbSession = db.getSession();


private WsActionTester ws = new WsActionTester(new AddMemberAction(dbClient, userSession, new UserIndexer(dbClient, es.client()))); private WsActionTester ws = new WsActionTester(new AddMemberAction(dbClient, userSession, new UserIndexer(dbClient, es.client()), new DefaultGroupFinder(dbClient)));


@Test @Test
public void definition() { public void definition() {
Expand Down Expand Up @@ -166,7 +167,7 @@ public void fail_when_organization_has_no_default_group() throws Exception {
UserDto user = db.users().insertUser(); UserDto user = db.users().insertUser();


expectedException.expect(IllegalStateException.class); expectedException.expect(IllegalStateException.class);
expectedException.expectMessage(format("Default group doesn't exist on default organization '%s'", organization.getKey())); expectedException.expectMessage(format("Default group cannot be found on organization '%s'", organization.getUuid()));


call(organization.getKey(), user.getLogin()); call(organization.getKey(), user.getLogin());
} }
Expand Down
Expand Up @@ -43,6 +43,7 @@
import org.sonar.server.organization.TestDefaultOrganizationProvider; import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.tester.UserSessionRule; import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.usergroups.DefaultGroupCreatorImpl; import org.sonar.server.usergroups.DefaultGroupCreatorImpl;
import org.sonar.server.usergroups.DefaultGroupFinder;
import org.sonar.server.ws.TestResponse; import org.sonar.server.ws.TestResponse;
import org.sonar.server.ws.WsActionTester; import org.sonar.server.ws.WsActionTester;


Expand All @@ -62,7 +63,7 @@ public class EnableSupportActionTest {
private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
private OrganizationFlags organizationFlags = new OrganizationFlagsImpl(db.getDbClient()); private OrganizationFlags organizationFlags = new OrganizationFlagsImpl(db.getDbClient());
private EnableSupportAction underTest = new EnableSupportAction(userSession, db.getDbClient(), defaultOrganizationProvider, organizationFlags, private EnableSupportAction underTest = new EnableSupportAction(userSession, db.getDbClient(), defaultOrganizationProvider, organizationFlags,
new DefaultGroupCreatorImpl(db.getDbClient())); new DefaultGroupCreatorImpl(db.getDbClient()), new DefaultGroupFinder(db.getDbClient()));
private WsActionTester tester = new WsActionTester(underTest); private WsActionTester tester = new WsActionTester(underTest);


@Test @Test
Expand Down Expand Up @@ -191,7 +192,7 @@ public void throw_ISE_when_default_organization_has_not_default_group() {
logInAsSystemAdministrator(user.getLogin()); logInAsSystemAdministrator(user.getLogin());


expectedException.expect(IllegalStateException.class); expectedException.expect(IllegalStateException.class);
expectedException.expectMessage(String.format("Default group doesn't exist on default organization '%s'", defaultOrganizationProvider.get().getKey())); expectedException.expectMessage(String.format("Default group cannot be found on organization '%s'", defaultOrganizationProvider.get().getUuid()));


call(); call();
} }
Expand Down

0 comments on commit 8e24100

Please sign in to comment.