public GroupDto create(DbSession dbSession, String organizationUuid) { Optional<GroupDto> existingMembersGroup = dbClient.groupDao().selectByName(dbSession, organizationUuid, DEFAULT_GROUP_NAME); checkArgument(!existingMembersGroup.isPresent(), "The group '%s' already exist on organization '%s'", DEFAULT_GROUP_NAME, organizationUuid); GroupDto defaultGroup = new GroupDto() .setName(DEFAULT_GROUP_NAME) .setDescription("All members of the organization") .setOrganizationUuid(organizationUuid); dbClient.groupDao().insert(dbSession, defaultGroup); dbClient.organizationDao().setDefaultGroupId(dbSession, organizationUuid, defaultGroup); return defaultGroup; }
/** * Owners group has an hard coded name, a description based on the organization's name and has all global permissions. */ private GroupDto insertOwnersGroup(DbSession dbSession, OrganizationDto organization) { GroupDto group = dbClient.groupDao().insert(dbSession, new GroupDto() .setOrganizationUuid(organization.getUuid()) .setName(OWNERS_GROUP_NAME) .setDescription(format(OWNERS_GROUP_DESCRIPTION_PATTERN, organization.getName()))); permissionService.getAllOrganizationPermissions().forEach(p -> addPermissionToGroup(dbSession, group, p)); return group; }
@Test public void select_by_query_with_special_characters() { String groupNameWithSpecialCharacters = "group%_%/name"; underTest.insert(dbSession, newGroupDto().setName(groupNameWithSpecialCharacters).setOrganizationUuid("org1")); db.commit(); List<GroupDto> result = underTest.selectByQuery(dbSession, "org1", "roup%_%/nam", 0, 10); int resultCount = underTest.countByQuery(dbSession, "org1", "roup%_%/nam"); assertThat(result).hasSize(1); assertThat(result.get(0).getName()).isEqualTo(groupNameWithSpecialCharacters); assertThat(resultCount).isEqualTo(1); }
private List<GroupDto> findGroups(DbSession dbSession, OrganizationDto org, PermissionQuery dbQuery) { List<String> orderedNames = dbClient.groupPermissionDao().selectGroupNamesByQuery(dbSession, dbQuery); List<GroupDto> groups = dbClient.groupDao().selectByNames(dbSession, org.getUuid(), orderedNames); if (orderedNames.contains(DefaultGroups.ANYONE)) { groups.add(0, new GroupDto().setId(0).setName(DefaultGroups.ANYONE).setOrganizationUuid(org.getUuid())); } return Ordering.explicit(orderedNames).onResultOf(GroupDto::getName).immutableSortedCopy(groups); }
/** * Create group in specified organization */ public GroupDto insertGroup(OrganizationDto organizationDto) { GroupDto group = newGroupDto().setOrganizationUuid(organizationDto.getUuid()); return insertGroup(group); }
@Test public void selectByNames() { GroupDto group1InOrg1 = underTest.insert(dbSession, newGroupDto().setName("group1").setOrganizationUuid("org1")); GroupDto group2InOrg1 = underTest.insert(dbSession, newGroupDto().setName("group2").setOrganizationUuid("org1")); GroupDto group1InOrg2 = underTest.insert(dbSession, newGroupDto().setName("group1").setOrganizationUuid("org2")); GroupDto group3InOrg2 = underTest.insert(dbSession, newGroupDto().setName("group3").setOrganizationUuid("org2")); dbSession.commit(); assertThat(underTest.selectByNames(dbSession, "org1", asList("group1", "group2", "group3", "missingGroup"))).extracting(GroupDto::getId) .containsOnly(group1InOrg1.getId(), group2InOrg1.getId()); assertThat(underTest.selectByNames(dbSession, "org1", Collections.emptyList())).isEmpty(); assertThat(underTest.selectByNames(dbSession, "missingOrg", asList("group1"))).isEmpty(); }
public GroupDto insertDefaultGroup(OrganizationDto organization) { return insertDefaultGroup(newGroupDto().setOrganizationUuid(organization.getUuid())); }
/** * Create group in default organization */ public GroupDto insertGroup() { GroupDto group = newGroupDto().setOrganizationUuid(db.getDefaultOrganization().getUuid()); return insertGroup(group); }
public GroupDto insertGroup(OrganizationDto organization, String name) { GroupDto group = newGroupDto().setName(name).setOrganizationUuid(organization.getUuid()); return insertGroup(group); }
private static GroupDto newGroup(OrganizationDto org, String name, String description) { return GroupTesting.newGroupDto().setName(name).setDescription(description).setOrganizationUuid(org.getUuid()); } }
public GroupDto insertDefaultGroup(OrganizationDto organization, String name) { return insertDefaultGroup(newGroupDto().setName(name).setOrganizationUuid(organization.getUuid())); }
private void insertGroup(OrganizationDto org, String name, int numberOfMembers) { GroupDto group = newGroupDto().setName(name).setDescription(capitalize(name)).setOrganizationUuid(org.getUuid()); db.users().insertGroup(group); addMembers(group, numberOfMembers); }
private void insertDefaultGroup(OrganizationDto org, String name, int numberOfMembers) { GroupDto group = newGroupDto().setName(name).setDescription(capitalize(name)).setOrganizationUuid(org.getUuid()); db.users().insertDefaultGroup(group); addMembers(group, numberOfMembers); }
public static GroupDto newGroupDto() { GroupDto group = new GroupDto() .setId(nextInt()) .setOrganizationUuid(randomAlphanumeric(40)) .setName(randomAlphanumeric(255)) .setDescription(randomAlphanumeric(200)) .setCreatedAt(new Date(nextLong())) .setUpdatedAt(new Date(nextLong())); return group; } }
private GroupDto insertDefaultGroup(String name, String description) { return db.users().insertDefaultGroup(newGroupDto().setName(name).setDescription(description).setOrganizationUuid(db.getDefaultOrganization().getUuid())); }
private GroupDto insertGroup(String name, String description) { return db.users().insertGroup(newGroupDto().setName(name).setDescription(description).setOrganizationUuid(db.getDefaultOrganization().getUuid())); }
private GroupDto insertGroupOnDefaultOrganization(String name, String description) { return db.users().insertGroup(newGroupDto().setName(name).setDescription(description).setOrganizationUuid(db.getDefaultOrganization().getUuid())); }
@Test public void return_groups_from_given_organization() { UserDto user = insertUser(); OrganizationDto organizationDto = db.organizations().insert(); OrganizationDto otherOrganizationDto = db.organizations().insert(); GroupDto group = db.users().insertDefaultGroup(newGroupDto().setName("group1").setOrganizationUuid(organizationDto.getUuid())); GroupDto otherGroup = db.users().insertDefaultGroup(newGroupDto().setName("group2").setOrganizationUuid(otherOrganizationDto.getUuid())); addUserToGroup(user, group); addUserToGroup(user, otherGroup); GroupsWsResponse response = call(ws.newRequest() .setParam("login", USER_LOGIN) .setParam("organization", organizationDto.getKey()) .setParam(Param.SELECTED, ALL.value())); assertThat(response.getGroupsList()) .extracting(GroupsWsResponse.Group::getId, GroupsWsResponse.Group::getName, GroupsWsResponse.Group::getDescription, GroupsWsResponse.Group::getSelected, GroupsWsResponse.Group::getDefault) .containsOnly(tuple(group.getId().longValue(), group.getName(), group.getDescription(), true, true)); }
@Test public void test_example() { OrganizationDto organization = db.organizations().insert(); QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO)); GroupDto group1 = db.users().insertGroup(newGroupDto().setName("users").setDescription("Users").setOrganizationUuid(organization.getUuid())); GroupDto group2 = db.users().insertGroup(newGroupDto().setName("administrators").setDescription("Administrators").setOrganizationUuid(organization.getUuid())); db.qualityProfiles().addGroupPermission(profile, group1); userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization); String result = ws.newRequest() .setParam(PARAM_ORGANIZATION, organization.getKey()) .setParam(PARAM_QUALITY_PROFILE, profile.getName()) .setParam(PARAM_LANGUAGE, XOO) .setParam(SELECTED, "all") .setMediaType(JSON) .execute() .getInput(); assertJson(ws.getDef().responseExampleAsString()).isSimilarTo(result); }
@Test public void group_without_description() { OrganizationDto organization = db.organizations().insert(); QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO)); GroupDto group = db.users().insertGroup(newGroupDto().setDescription(null).setOrganizationUuid(organization.getUuid())); db.qualityProfiles().addGroupPermission(profile, group); userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization); SearchGroupsResponse response = ws.newRequest() .setParam(PARAM_ORGANIZATION, organization.getKey()) .setParam(PARAM_QUALITY_PROFILE, profile.getName()) .setParam(PARAM_LANGUAGE, XOO) .setParam(SELECTED, "all") .executeProtobuf(SearchGroupsResponse.class); assertThat(response.getGroupsList()).extracting(SearchGroupsResponse.Group::getName, SearchGroupsResponse.Group::hasDescription) .containsExactlyInAnyOrder(tuple(group.getName(), false)); }