private void removeMember(DbSession dbSession, OrganizationDto organization, UserDto user) { ensureLastAdminIsNotRemoved(dbSession, organization, user); int userId = user.getId(); String organizationUuid = organization.getUuid(); dbClient.userPermissionDao().deleteOrganizationMemberPermissions(dbSession, organizationUuid, userId); dbClient.permissionTemplateDao().deleteUserPermissionsByOrganization(dbSession, organizationUuid, userId); dbClient.qProfileEditUsersDao().deleteByOrganizationAndUser(dbSession, organization, user); dbClient.userGroupDao().deleteByOrganizationAndUser(dbSession, organizationUuid, userId); dbClient.propertiesDao().deleteByOrganizationAndUser(dbSession, organizationUuid, userId); dbClient.propertiesDao().deleteByOrganizationAndMatchingLogin(dbSession, organizationUuid, user.getLogin(), singletonList(DEFAULT_ISSUE_ASSIGNEE)); dbClient.organizationMemberDao().delete(dbSession, organizationUuid, userId); userIndexer.commitAndIndex(dbSession, user); }
@Test public void delete_permissions_of_an_organization_member() { OrganizationDto organization1 = db.organizations().insert(); OrganizationDto organization2 = db.organizations().insert(); ComponentDto project = db.components().insertPrivateProject(organization1); UserDto user1 = insertUser(organization1, organization2); UserDto user2 = insertUser(organization1, organization2); // user 1 permissions db.users().insertPermissionOnUser(organization1, user1, SCAN); db.users().insertPermissionOnUser(organization1, user1, ADMINISTER); db.users().insertProjectPermissionOnUser(user1, UserRole.CODEVIEWER, project); db.users().insertPermissionOnUser(organization2, user1, SCAN); // user 2 permission db.users().insertPermissionOnUser(organization1, user2, SCAN); db.users().insertProjectPermissionOnUser(user2, UserRole.CODEVIEWER, project); underTest.deleteOrganizationMemberPermissions(dbSession, organization1.getUuid(), user1.getId()); dbSession.commit(); // user 1 permissions assertOrgPermissionsOfUser(user1, organization1); assertOrgPermissionsOfUser(user1, organization2, SCAN); assertProjectPermissionsOfUser(user1, project); // user 2 permissions assertOrgPermissionsOfUser(user2, organization1, SCAN); assertProjectPermissionsOfUser(user2, project, CODEVIEWER); }
private void removeMember(DbSession dbSession, OrganizationDto organization, UserDto user) { ensureLastAdminIsNotRemoved(dbSession, organization, user); int userId = user.getId(); String organizationUuid = organization.getUuid(); dbClient.userPermissionDao().deleteOrganizationMemberPermissions(dbSession, organizationUuid, userId); dbClient.permissionTemplateDao().deleteUserPermissionsByOrganization(dbSession, organizationUuid, userId); dbClient.qProfileEditUsersDao().deleteByOrganizationAndUser(dbSession, organization, user); dbClient.userGroupDao().deleteByOrganizationAndUser(dbSession, organizationUuid, userId); dbClient.propertiesDao().deleteByOrganizationAndUser(dbSession, organizationUuid, userId); dbClient.propertiesDao().deleteByOrganizationAndMatchingLogin(dbSession, organizationUuid, user.getLogin(), singletonList(DEFAULT_ISSUE_ASSIGNEE)); dbClient.organizationMemberDao().delete(dbSession, organizationUuid, userId); userIndexer.commitAndIndex(dbSession, user); }