@Test public void deleteByRootComponentIdAndGroupId_has_no_effect_if_component_does_not_exist() { OrganizationDto organization = db.organizations().insert(); GroupDto group = db.users().insertGroup(organization); assertThat(underTest.deleteByRootComponentIdAndGroupId(dbSession, 1234L, null)).isEqualTo(0); assertThat(underTest.deleteByRootComponentIdAndGroupId(dbSession, 1234L, group.getId())).isEqualTo(0); }
@Test public void selectGroupNamesByQuery_is_paginated() { IntStream.rangeClosed(0, 9).forEach(i -> db.users().insertGroup(db.getDefaultOrganization(), i + "-name")); List<String> groupNames = underTest.selectGroupNamesByQuery(dbSession, newQuery().setPageIndex(2).setPageSize(3).build()); assertThat(groupNames).containsExactly("3-name", "4-name", "5-name"); }
@Before public void setUp() throws Exception { when(system2.now()).thenReturn(NOW); group1 = db.users().insertGroup(db.getDefaultOrganization(), GROUP1); group2 = db.users().insertGroup(db.getDefaultOrganization(), GROUP2); sonarUsers = db.users().insertDefaultGroup(db.getDefaultOrganization(), "sonar-users"); }
@Test public void selectGroupNamesByQuery_does_not_return_anyone_when_group_roles_is_empty() { GroupDto group = db.users().insertGroup(); assertThat(underTest.selectGroupNamesByQuery(dbSession, newQuery().build())) .doesNotContain(ANYONE) .containsExactly(group.getName()); }
@Test public void hasComponentPermissionByDtoOrUuid_returns_true_for_anonymous_user_for_permissions_USER_and_CODEVIEWER_on_public_projects_with_group_permissions() { OrganizationDto organization = db.organizations().insert(); ComponentDto publicProject = db.components().insertPublicProject(organization); db.users().insertProjectPermissionOnGroup(db.users().insertGroup(organization), "p1", publicProject); ServerUserSession underTest = newAnonymousSession(); assertThat(hasComponentPermissionByDtoOrUuid(underTest, UserRole.USER, publicProject)).isTrue(); assertThat(hasComponentPermissionByDtoOrUuid(underTest, UserRole.CODEVIEWER, publicProject)).isTrue(); }
@Test public void hasComponentPermissionByDtoOrUuid_returns_false_for_anonymous_user_for_inserted_permissions_on_group_on_public_projects() { OrganizationDto organization = db.organizations().insert(); ComponentDto publicProject = db.components().insertPublicProject(organization); GroupDto group = db.users().insertGroup(organization); db.users().insertProjectPermissionOnGroup(group, "p1", publicProject); ServerUserSession underTest = newAnonymousSession(); assertThat(hasComponentPermissionByDtoOrUuid(underTest, "p1", publicProject)).isFalse(); }
@Before public void setUp() { template = db.permissionTemplates().insertTemplate(db.getDefaultOrganization()); group = db.users().insertGroup(db.getDefaultOrganization(), "group-name"); }
@Test public void deleteByRootComponentIdAndPermission_has_no_effect_if_component_does_not_have_specified_permission() { OrganizationDto organization = db.organizations().insert(); GroupDto group = db.users().insertGroup(organization); ComponentDto project = randomPublicOrPrivateProject(organization); db.users().insertPermissionOnAnyone(organization, "p1"); db.users().insertPermissionOnGroup(group, "p1"); assertThat(underTest.deleteByRootComponentIdAndPermission(dbSession, project.getId(), "p1")).isEqualTo(0); }
@Test public void fail_if_not_admin_of_organization() { GroupDto group = db.users().insertGroup(); userSession.logIn("not-admin"); expectedException.expect(ForbiddenException.class); newUsersRequest() .setParam("id", group.getId().toString()) .setParam("login", "john").execute(); }
@Test public void selectGroupIdsWithPermissionOnProjectBut_returns_empty_if_project_does_not_exist() { OrganizationDto organization = db.organizations().insert(); ComponentDto project = randomPublicOrPrivateProject(organization); GroupDto group = db.users().insertGroup(organization); db.users().insertProjectPermissionOnGroup(group, "foo", project); assertThat(underTest.selectGroupIdsWithPermissionOnProjectBut(dbSession, 1234, UserRole.USER)) .isEmpty(); }
@Test public void return_group_membership() { UserDto user = db.users().insertUser(); userSession.logIn(user); db.users().insertMember(db.users().insertGroup(newGroupDto().setName("Jedi")), user); db.users().insertMember(db.users().insertGroup(newGroupDto().setName("Rebel")), user); CurrentWsResponse response = call(); assertThat(response.getGroupsList()).containsOnly("Jedi", "Rebel"); }
@Test public void select_group_names_by_query_and_template_returns_anyone() { OrganizationDto organization = db.organizations().insert(); PermissionTemplateDto template = permissionTemplateDbTester.insertTemplate(organization); GroupDto group = db.users().insertGroup(newGroupDto().setName("Group")); PermissionTemplateDto otherTemplate = permissionTemplateDbTester.insertTemplate(organization); permissionTemplateDbTester.addGroupToTemplate(otherTemplate.getId(), group.getId(), USER); assertThat(selectGroupNamesByQueryAndTemplate(builder().setSearchQuery("nyo"), organization, template)) .containsExactly("Anyone"); }
@Before public void setUp() throws Exception { org = db.organizations().insert(); group = db.users().insertGroup(org, "a-group"); privateProject = db.components().insertPrivateProject(org); publicProject = db.components().insertPublicProject(org); }
@Test public void fail_when_permission_is_missing() { GroupDto group = db.users().insertGroup(db.getDefaultOrganization(), "sonar-administrators"); loginAsAdmin(db.getDefaultOrganization()); expectedException.expect(IllegalArgumentException.class); newRequest() .setParam(PARAM_GROUP_NAME, group.getName()) .execute(); }
@Test public void adding_global_permission_fails_if_not_administrator_of_organization() { GroupDto group = db.users().insertGroup(db.getDefaultOrganization(), "sonar-administrators"); // user is administrator of another organization userSession.logIn().addPermission(ADMINISTER, "anotherOrg"); expectedException.expect(ForbiddenException.class); newRequest() .setParam(PARAM_GROUP_NAME, group.getName()) .setParam(PARAM_PERMISSION, PROVISIONING) .execute(); }
@Test public void cannot_delete_last_system_admin_group() { insertDefaultGroupOnDefaultOrganization(); GroupDto group = db.users().insertGroup(); db.users().insertPermissionOnGroup(group, SYSTEM_ADMIN); loginAsAdminOnDefaultOrganization(); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("The last system admin group cannot be deleted"); newRequest() .setParam(PARAM_GROUP_NAME, group.getName()) .execute(); }
@Test public void should_add_group_permission_to_template() { PermissionTemplateDto permissionTemplate = templateDb.insertTemplate(db.getDefaultOrganization()); GroupDto group = db.users().insertGroup(); underTest.insertGroupPermission(dbSession, permissionTemplate.getId(), group.getId(), "user"); dbSession.commit(); assertThat(db.getDbClient().permissionTemplateDao().selectGroupPermissionsByTemplateId(db.getSession(), permissionTemplate.getId())) .extracting(PermissionTemplateGroupDto::getTemplateId, PermissionTemplateGroupDto::getGroupId, PermissionTemplateGroupDto::getPermission, PermissionTemplateGroupDto::getCreatedAt, PermissionTemplateGroupDto::getUpdatedAt) .containsOnly(tuple(permissionTemplate.getId(), group.getId(), "user", NOW, NOW)); }
@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); }
@Test public void fail_if_group_with_same_name_already_exists_in_the_organization() throws Exception { OrganizationDto org = db.organizations().insert(); GroupDto group = db.users().insertGroup(org, "the-group"); loginAsAdmin(org); expectedException.expect(ServerException.class); expectedException.expectMessage("Group '" + group.getName() + "' already exists"); newRequest() .setParam("organization", org.getKey()) .setParam("name", group.getName()) .execute(); }