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()); } }
private void assertTemplate1AppliedToProject() { assertThat(selectProjectPermissionGroups(project, UserRole.ADMIN)).containsExactly(group1.getName()); assertThat(selectProjectPermissionGroups(project, UserRole.USER)).containsExactly(group2.getName()); assertThat(selectProjectPermissionUsers(project, UserRole.ADMIN)).isEmpty(); assertThat(selectProjectPermissionUsers(project, UserRole.CODEVIEWER)).containsExactly(user1.getId()); assertThat(selectProjectPermissionUsers(project, UserRole.ISSUE_ADMIN)).containsExactly(user2.getId()); }
@Test public void keepAuthorizedProjectIds_returns_empty_for_user_and_any_permission_on_private_project_without_any_permission_in_DB() { PermissionsTestHelper.ALL_PERMISSIONS .forEach(perm -> { assertThat(underTest.keepAuthorizedProjectIds(dbSession, randomPrivateProjectIds, user.getId(), perm)) .isEmpty(); }); assertThat(underTest.keepAuthorizedProjectIds(dbSession, randomPrivateProjectIds, user.getId(), randomPermission)) .isEmpty(); }
@Test public void keepAuthorizedProjectIds_returns_empty_for_any_permission_for_user_on_public_project_without_any_permission_in_DB() { assertThat(underTest.keepAuthorizedProjectIds(dbSession, randomPublicProjectIds, user.getId(), randomPermission)) .isEmpty(); }
@Test public void keepAuthorizedProjectIds_returns_empty_for_user_on_private_project_without_any_permission_in_DB_and_permission_USER() { assertThat(underTest.keepAuthorizedProjectIds(dbSession, randomPrivateProjectIds, user.getId(), UserRole.USER)) .isEmpty(); }
@Test public void keepAuthorizedProjectIds_returns_empty_for_user_on_private_project_without_any_permission_in_DB_and_permission_CODEVIEWER() { assertThat(underTest.keepAuthorizedProjectIds(dbSession, randomPrivateProjectIds, user.getId(), UserRole.CODEVIEWER)) .isEmpty(); }
private UserPermissionDto addGlobalPermission(OrganizationDto org, String permission, UserDto user) { UserPermissionDto dto = new UserPermissionDto(org.getUuid(), permission, user.getId(), null); underTest.insert(dbSession, dto); db.commit(); return dto; }
@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()])); }
private void assertUserPropertyExists(String key, UserDto user) { assertThat(dbClient.propertiesDao().selectByQuery(PropertyQuery.builder() .setKey(key) .setUserId(user.getId()) .build(), dbSession)).isNotEmpty(); }
@Test public void clean_user_homepage() { UserDto user = newUserDto().setHomepageType("RANDOM").setHomepageParameter("any-string"); underTest.insert(session, user); session.commit(); underTest.cleanHomepage(session, user); UserDto reloaded = underTest.selectUserById(session, user.getId()); assertThat(reloaded.getUpdatedAt()).isEqualTo(NOW); assertThat(reloaded.getHomepageType()).isNull(); assertThat(reloaded.getHomepageParameter()).isNull(); }
private static PermissionTemplateUserDto newPermissionTemplateUser(String permission, PermissionTemplateDto template, UserDto user) { return newPermissionTemplateUserDto() .setPermission(permission) .setTemplateId(template.getId()) .setUserId(user.getId()); }
private void addUser(DbSession dbSession, QProfileDto profile, UserDto user) { if (dbClient.qProfileEditUsersDao().exists(dbSession, profile, user)) { return; } dbClient.qProfileEditUsersDao().insert(dbSession, new QProfileEditUsersDto() .setUuid(uuidFactory.create()) .setUserId(user.getId()) .setQProfileUuid(profile.getKee())); dbSession.commit(); }
@Test public void deleteProjectPermissionOfAnyUser_has_no_effect_if_specified_component_does_not_have_specified_permission() { OrganizationDto organization = db.organizations().insert(); UserDto user = insertUser(organization); db.users().insertPermissionOnUser(organization, user, SCAN); ComponentDto project = randomPublicOrPrivateProject(organization); db.users().insertProjectPermissionOnUser(user, SCAN.getKey(), project); int deletedCount = underTest.deleteProjectPermissionOfAnyUser(dbSession, project.getId(), "p1"); assertThat(deletedCount).isEqualTo(0); assertThat(underTest.selectGlobalPermissionsOfUser(dbSession, user.getId(), organization.getUuid())).containsOnly(SCAN.getKey()); assertThat(underTest.selectProjectPermissionsOfUser(dbSession, user.getId(), project.getId())).containsOnly(SCAN.getKey()); }
private void unsafeInsertProjectPermissionOnUser(ComponentDto component, UserDto user, String permission) { UserPermissionDto dto = new UserPermissionDto(component.getOrganizationUuid(), permission, user.getId(), component.getId()); dbTester.getDbClient().userPermissionDao().insert(dbTester.getSession(), dto); dbTester.commit(); }
@Test public void selectProjectPermissions_returns_permissions_of_logged_in_user_on_specified_project() { ComponentDto project = db.components().insertPrivateProject(organization); db.users().insertProjectPermissionOnUser(user, UserRole.CODEVIEWER, project); db.users().insertProjectPermissionOnUser(db.users().insertUser(), UserRole.ISSUE_ADMIN, project); assertThat(underTest.selectProjectPermissions(dbSession, project.uuid(), user.getId())).containsOnly(UserRole.CODEVIEWER); }
@Test public void deactivate_user_deletes_his_properties() { logInAsSystemAdministrator(); UserDto user = db.users().insertUser(); ComponentDto project = db.components().insertPrivateProject(); db.properties().insertProperty(newUserPropertyDto(user)); db.properties().insertProperty(newUserPropertyDto(user)); db.properties().insertProperty(newUserPropertyDto(user).setResourceId(project.getId())); deactivate(user.getLogin()); assertThat(db.getDbClient().propertiesDao().selectByQuery(PropertyQuery.builder().setUserId(user.getId()).build(), dbSession)).isEmpty(); assertThat(db.getDbClient().propertiesDao().selectByQuery(PropertyQuery.builder().setUserId(user.getId()).setComponentId(project.getId()).build(), dbSession)).isEmpty(); }
@Test public void selectOrganizationUuidsOfUserWithGlobalPermission_returns_organizations_on_which_user_has_permission() { db.users().insertPermissionOnGroup(group1, SCAN); db.users().insertPermissionOnGroup(group2, QUALITY_GATE_ADMIN); db.users().insertMember(group1, user); db.users().insertMember(group2, user); Set<String> orgUuids = underTest.selectOrganizationUuidsOfUserWithGlobalPermission(dbSession, user.getId(), SCAN.getKey()); assertThat(orgUuids).containsExactly(group1.getOrganizationUuid()); }
@Test public void add_user_as_member_of_default_organization_when_creating_user_and_organizations_are_disabled() { createDefaultGroup(); UserDto dto = underTest.createAndCommit(db.getSession(), NewUser.builder() .setLogin("user") .setName("User") .setEmail("user@mail.com") .setPassword("PASSWORD") .build(), u -> { }); assertThat(dbClient.organizationMemberDao().select(db.getSession(), defaultOrganizationProvider.get().getUuid(), dto.getId())).isPresent(); }
@Test public void add_user_as_member_of_default_organization_when_reactivating_user_and_organizations_are_disabled() { UserDto user = db.users().insertDisabledUser(); createDefaultGroup(); UserDto dto = underTest.reactivateAndCommit(db.getSession(), user, NewUser.builder().setLogin(user.getLogin()).setName(user.getName()).build(), u -> { }); assertThat(dbClient.organizationMemberDao().select(db.getSession(), defaultOrganizationProvider.get().getUuid(), dto.getId())).isPresent(); }
@Test public void does_not_add_user_as_member_of_default_organization_when_reactivating_user_and_organizations_are_enabled() { organizationFlags.setEnabled(true); UserDto user = db.users().insertDisabledUser(); createDefaultGroup(); UserDto dto = underTest.reactivateAndCommit(db.getSession(), user, NewUser.builder().setLogin(user.getLogin()).setName(user.getName()).build(), u -> { }); assertThat(dbClient.organizationMemberDao().select(db.getSession(), defaultOrganizationProvider.get().getUuid(), dto.getId())).isNotPresent(); }