summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/AdHocRuleCreator.java10
-rw-r--r--server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/RuleRepositoryImpl.java9
-rw-r--r--server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java29
-rw-r--r--server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/AdHocRuleCreatorTest.java21
-rw-r--r--server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/RuleRepositoryImplTest.java17
-rw-r--r--server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java46
-rw-r--r--server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistAdHocRulesStepTest.java7
-rw-r--r--server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStepTest.java5
-rw-r--r--server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java1
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/es/RuleExtensionId.java80
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleCountQuery.java14
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleDao.java19
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleMapper.java8
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileDao.java13
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileDto.java13
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileMapper.java8
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/OrgActiveRuleDto.java11
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/OrgQProfileDto.java15
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileDto.java18
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditGroupsDao.java5
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditGroupsMapper.java2
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditUsersDao.java9
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditUsersMapper.java4
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileDao.java49
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileMapper.java26
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchGroupsQuery.java13
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchUsersQuery.java14
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java79
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDefinitionDto.java6
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDto.java9
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleExtensionForIndexingDto.java10
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleForIndexingDto.java5
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleMapper.java21
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleMetadataDto.java11
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/ActiveRuleMapper.xml10
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/DefaultQProfileMapper.xml14
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QProfileEditGroupsMapper.xml4
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QProfileEditUsersMapper.xml16
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QualityProfileMapper.xml25
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml20
-rw-r--r--server/sonar-db-dao/src/schema/schema-sq.ddl8
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/permission/AuthorizationDaoTest.java6
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/ActiveRuleDaoTest.java49
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/DefaultQProfileDaoTest.java72
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileChangeDaoTest.java24
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileEditGroupsDaoTest.java123
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileEditUsersDaoTest.java105
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QualityProfileDaoTest.java269
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QualityProfileExportDaoTest.java7
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java360
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/webhook/WebhookDaoTest.java1
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/ComponentDbTester.java6
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/organization/OrganizationDbTester.java4
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualityprofile/QualityProfileDbTester.java17
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualityprofile/QualityProfileTesting.java1
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleDbTester.java18
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleTesting.java73
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/user/UserDbTester.java5
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfiles.java36
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DbVersion85.java6
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPk.java36
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfiles.java36
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTable.java37
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadata.java42
-rw-r--r--server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfilesTest.java40
-rw-r--r--server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPkTest.java41
-rw-r--r--server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfilesTest.java41
-rw-r--r--server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTableTest.java40
-rw-r--r--server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadataTest.java40
-rw-r--r--server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfilesTest/schema.sql7
-rw-r--r--server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPkTest/schema.sql9
-rw-r--r--server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfilesTest/schema.sql8
-rw-r--r--server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTableTest/schema.sql14
-rw-r--r--server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadataTest/schema.sql19
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/es/BulkIndexer.java14
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/es/EsClient.java3
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProviderImpl.java2
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/rule/DefaultRuleFinder.java13
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleDoc.java12
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleExtensionDoc.java102
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleExtensionScope.java61
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndex.java75
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndexDefinition.java15
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndexer.java73
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleQuery.java10
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/qualityprofile/index/ActiveRuleIndexerTest.java6
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/rule/DefaultRuleFinderTest.java7
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexDefinitionTest.java2
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexTest.java126
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexerTest.java60
-rw-r--r--server/sonar-server-common/src/testFixtures/java/org/sonar/server/organization/TestDefaultOrganizationProvider.java4
-rw-r--r--server/sonar-web/src/main/js/api/quality-profiles.ts7
-rw-r--r--server/sonar-web/src/main/js/api/rules.ts12
-rw-r--r--server/sonar-web/src/main/js/app/components/nav/component/projectInformation/meta/MetaQualityProfiles.tsx1
-rw-r--r--server/sonar-web/src/main/js/apps/about/components/AboutApp.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/about/components/AboutStandards.tsx18
-rw-r--r--server/sonar-web/src/main/js/apps/about/components/__tests__/__snapshots__/AboutApp-test.tsx.snap15
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/ActivationButton.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/ActivationFormModal.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/App.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleButton.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleFormModal.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetails.tsx22
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsCustomRules.tsx11
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsDescription.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsIssues.tsx20
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsMeta.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsProfiles.tsx15
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsTagsPopup.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx3
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/ActivationFormModal-test.tsx1
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/App-test.tsx10
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/CustomRuleFormModal-test.tsx1
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetails-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsDescription-test.tsx8
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsIssues-test.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsMeta-test.tsx1
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsTagsPopup-test.tsx10
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/App-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/RuleDetailsIssues-test.tsx.snap6
-rw-r--r--server/sonar-web/src/main/js/apps/groups/components/__tests__/App-test.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-gates/components/App.tsx7
-rw-r--r--server/sonar-web/src/main/js/apps/quality-gates/components/CopyQualityGateForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-gates/components/CreateQualityGateForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-gates/components/DeleteQualityGateForm.tsx2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-gates/components/List.tsx5
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/changelog/Changelog.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangelogContainer.tsx19
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonContainer.tsx1
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResultActivation.tsx1
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileActions.tsx26
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileContainer.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileLink.tsx8
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileNotFound.tsx10
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/ProfileActions-test.tsx5
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/__snapshots__/ProfileActions-test.tsx.snap16
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileHeader.tsx18
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritanceBox.tsx7
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx5
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesDeprecatedWarning.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesRowOfType.tsx18
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesRowTotal.tsx10
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesSonarWayComparison.tsx15
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileHeader-test.tsx.snap7
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileInheritanceBox-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRules-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesDeprecatedWarning-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesRowOfType-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesRowTotal-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesSonarWayComparison-test.tsx.snap2
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionDeprecated.tsx8
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx9
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionStagnant.tsx3
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/PageHeader.tsx4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.tsx6
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListHeader.tsx11
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListRow.tsx29
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/ProfilesListHeader-test.tsx1
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/EvolutionDeprecated-test.tsx.snap12
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/ProfilesList-test.tsx.snap3
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/ProfilesListRow-test.tsx.snap4
-rw-r--r--server/sonar-web/src/main/js/apps/quality-profiles/utils.ts30
-rw-r--r--server/sonar-web/src/main/js/apps/users/components/GroupsForm.tsx1
-rw-r--r--server/sonar-web/src/main/js/apps/users/components/__tests__/GroupsForm-test.tsx1
-rw-r--r--server/sonar-web/src/main/js/components/workspace/WorkspaceRuleDetails.tsx23
-rw-r--r--server/sonar-web/src/main/js/components/workspace/WorkspaceRuleViewer.tsx6
-rw-r--r--server/sonar-web/src/main/js/components/workspace/__tests__/WorkspaceRuleDetails-test.tsx26
-rw-r--r--server/sonar-web/src/main/js/components/workspace/__tests__/__snapshots__/WorkspaceRuleViewer-test.tsx.snap3
-rw-r--r--server/sonar-web/src/main/js/helpers/__tests__/urls-test.ts14
-rw-r--r--server/sonar-web/src/main/js/helpers/urls.ts33
-rw-r--r--server/sonar-webserver-auth/src/main/java/org/sonar/server/organization/MemberUpdater.java1
-rw-r--r--server/sonar-webserver-auth/src/main/java/org/sonar/server/organization/OrganizationUpdaterImpl.java6
-rw-r--r--server/sonar-webserver-auth/src/main/java/org/sonar/server/qualityprofile/BuiltInQProfileInsert.java2
-rw-r--r--server/sonar-webserver-auth/src/main/java/org/sonar/server/qualityprofile/BuiltInQProfileInsertImpl.java42
-rw-r--r--server/sonar-webserver-auth/src/test/java/org/sonar/server/organization/MemberUpdaterTest.java24
-rw-r--r--server/sonar-webserver-auth/src/test/java/org/sonar/server/organization/OrganizationUpdaterImplTest.java4
-rw-r--r--server/sonar-webserver-auth/src/test/java/org/sonar/server/qualityprofile/BuiltInQProfileInsertImplTest.java54
-rw-r--r--server/sonar-webserver-auth/src/test/java/org/sonar/server/qualityprofile/BuiltInQProfileUpdateImplTest.java11
-rw-r--r--server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java29
-rw-r--r--server/sonar-webserver-core/src/main/java/org/sonar/server/rule/WebServerRuleFinderImpl.java4
-rw-r--r--server/sonar-webserver-core/src/test/java/org/sonar/server/rule/RegisterRulesTest.java122
-rw-r--r--server/sonar-webserver-core/src/test/java/org/sonar/server/rule/WebServerRuleFinderImplTest.java3
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/OrganizationDeleter.java6
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuper.java5
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuperImpl.java4
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileCopier.java11
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileFactory.java7
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileFactoryImpl.java22
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileRulesImpl.java2
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java9
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRuleAction.java4
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRulesAction.java4
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddGroupAction.java12
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddProjectAction.java14
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddUserAction.java11
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/BackupAction.java2
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangeParentAction.java10
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangelogAction.java3
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CompareAction.java7
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CopyAction.java4
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CreateAction.java38
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRuleAction.java4
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRulesAction.java4
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeleteAction.java9
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ExportAction.java19
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/InheritanceAction.java11
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ProjectsAction.java22
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileReference.java44
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileWsSupport.java78
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveGroupAction.java12
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveProjectAction.java12
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveUserAction.java12
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RenameAction.java8
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RestoreAction.java13
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchAction.java93
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchData.java11
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchGroupsAction.java12
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersAction.java12
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersRequest.java14
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SetDefaultAction.java14
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ShowAction.java18
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleCreator.java19
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleUpdate.java11
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleUpdater.java17
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ActiveRuleCompleter.java7
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/AppAction.java25
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleQueryFactory.java39
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleWsSupport.java28
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java4
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ShowAction.java22
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/TagsAction.java36
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/UpdateAction.java32
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/pr/ws/ListActionTest.java1
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/ListActionTest.java1
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java2
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/WebIssueStorageTest.java4
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/AddCommentActionTest.java3
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java3
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/BulkChangeActionTest.java2
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/DoTransitionActionTest.java3
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/IssueUpdaterTest.java3
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetSeverityActionTest.java3
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetTagsActionTest.java3
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetTypeActionTest.java3
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/organization/ws/DeleteActionTest.java22
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/organization/ws/OrganizationDeleterTest.java20
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileBackuperImplTest.java40
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileComparisonTest.java4
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileCopierTest.java24
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileExportersTest.java9
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileFactoryImplTest.java76
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileResetImplTest.java8
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileRuleImplTest.java12
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileRulesImplTest.java7
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileTesting.java37
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileTreeImplTest.java4
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/RegisterQualityProfilesNotificationTest.java22
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/RegisterQualityProfilesTest.java23
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRuleActionTest.java41
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRulesActionTest.java20
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddGroupActionTest.java95
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddProjectActionTest.java95
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddUserActionTest.java94
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/BackupActionTest.java103
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ChangeParentActionTest.java54
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ChangelogActionTest.java114
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CompareActionTest.java52
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CopyActionTest.java46
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CreateActionTest.java67
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRuleActionTest.java48
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRulesActionTest.java31
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeleteActionTest.java83
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ExportActionTest.java140
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/InheritanceActionTest.java67
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ProjectsActionTest.java89
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfileReferenceTest.java52
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfileWsSupportTest.java39
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java12
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveGroupActionTest.java90
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveProjectActionTest.java53
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveUserActionTest.java94
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RenameActionTest.java52
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RestoreActionTest.java33
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchActionTest.java209
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchGroupsActionTest.java99
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchUsersActionTest.java111
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SetDefaultActionTest.java77
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ShowActionTest.java71
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleCreatorTest.java9
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleDescriptionFormatterTest.java1
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleUpdaterTest.java127
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ActiveRuleCompleterTest.java6
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/AppActionTest.java53
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/CreateActionTest.java5
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/DeleteActionTest.java3
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/RuleQueryFactoryTest.java127
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/SearchActionTest.java183
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ShowActionTest.java109
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/TagsActionTest.java25
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/UpdateActionTest.java71
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java4
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/DeactivateActionTest.java2
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java2
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofile/QualityProfileWsParameters.java1
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ActivateRulesRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddGroupRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddProjectRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddUserRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/BackupRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ChangeParentRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ChangelogRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/CreateRequest.java13
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/DeactivateRulesRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/DeleteRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ExportRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/InheritanceRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/QualityprofilesService.java22
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveGroupRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveProjectRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveUserRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RestoreRequest.java13
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchGroupsRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchUsersRequest.java14
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SetDefaultRequest.java14
-rw-r--r--sonar-ws/src/main/protobuf/ws-qualityprofiles.proto3
327 files changed, 2235 insertions, 6032 deletions
diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/AdHocRuleCreator.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/AdHocRuleCreator.java
index 183024ac06a..5b716e059db 100644
--- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/AdHocRuleCreator.java
+++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/AdHocRuleCreator.java
@@ -59,9 +59,9 @@ public class AdHocRuleCreator {
* Persists a new add hoc rule in the DB and indexes it.
* @return the rule that was inserted in the DB, which <b>includes the generated ID</b>.
*/
- public RuleDto persistAndIndex(DbSession dbSession, NewAdHocRule adHoc, OrganizationDto organizationDto) {
+ public RuleDto persistAndIndex(DbSession dbSession, NewAdHocRule adHoc) {
RuleDao dao = dbClient.ruleDao();
- Optional<RuleDto> existingRuleDtoOpt = dao.selectByKey(dbSession, organizationDto.getUuid(), adHoc.getKey());
+ Optional<RuleDto> existingRuleDtoOpt = dao.selectByKey(dbSession, adHoc.getKey());
RuleMetadataDto metadata;
long now = system2.now();
if (!existingRuleDtoOpt.isPresent()) {
@@ -76,9 +76,7 @@ public class AdHocRuleCreator {
.setCreatedAt(now)
.setUpdatedAt(now);
dao.insert(dbSession, dto);
- metadata = new RuleMetadataDto()
- .setRuleUuid(dto.getUuid())
- .setOrganizationUuid(organizationDto.getUuid());
+ metadata = new RuleMetadataDto().setRuleUuid(dto.getUuid());
} else {
// No need to update the rule, only org specific metadata
RuleDto ruleDto = existingRuleDtoOpt.get();
@@ -113,7 +111,7 @@ public class AdHocRuleCreator {
}
- RuleDto ruleDto = dao.selectOrFailByKey(dbSession, organizationDto, adHoc.getKey());
+ RuleDto ruleDto = dao.selectOrFailByKey(dbSession, adHoc.getKey());
ruleIndexer.commitAndIndex(dbSession, ruleDto.getUuid());
return ruleDto;
}
diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/RuleRepositoryImpl.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/RuleRepositoryImpl.java
index 75118b2bd8c..769ddf2cad8 100644
--- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/RuleRepositoryImpl.java
+++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/RuleRepositoryImpl.java
@@ -50,14 +50,12 @@ public class RuleRepositoryImpl implements RuleRepository {
private final AdHocRuleCreator creator;
private final DbClient dbClient;
- private final AnalysisMetadataHolder analysisMetadataHolder;
private Map<RuleKey, NewAdHocRule> adHocRulesPersist = new HashMap<>();
- public RuleRepositoryImpl(AdHocRuleCreator creator, DbClient dbClient, AnalysisMetadataHolder analysisMetadataHolder) {
+ public RuleRepositoryImpl(AdHocRuleCreator creator, DbClient dbClient) {
this.creator = creator;
this.dbClient = dbClient;
- this.analysisMetadataHolder = analysisMetadataHolder;
}
public void addOrUpdateAddHocRuleIfNeeded(RuleKey ruleKey, Supplier<NewAdHocRule> ruleSupplier) {
@@ -79,7 +77,7 @@ public class RuleRepositoryImpl implements RuleRepository {
}
private void persistAndIndex(DbSession dbSession, NewAdHocRule adHocRule) {
- Rule rule = new RuleImpl(creator.persistAndIndex(dbSession, adHocRule, analysisMetadataHolder.getOrganization().toDto()));
+ Rule rule = new RuleImpl(creator.persistAndIndex(dbSession, adHocRule));
rulesByUuid.put(rule.getUuid(), rule);
rulesByKey.put(adHocRule.getKey(), rule);
}
@@ -135,10 +133,9 @@ public class RuleRepositoryImpl implements RuleRepository {
private void loadRulesFromDb(DbSession dbSession) {
this.rulesByKey = new HashMap<>();
this.rulesByUuid = new HashMap<>();
- String organizationUuid = analysisMetadataHolder.getOrganization().getUuid();
Multimap<String, DeprecatedRuleKeyDto> deprecatedRuleKeysByRuleUuid = dbClient.ruleDao().selectAllDeprecatedRuleKeys(dbSession).stream()
.collect(MoreCollectors.index(DeprecatedRuleKeyDto::getRuleUuid));
- for (RuleDto ruleDto : dbClient.ruleDao().selectAll(dbSession, organizationUuid)) {
+ for (RuleDto ruleDto : dbClient.ruleDao().selectAll(dbSession)) {
Rule rule = new RuleImpl(ruleDto);
rulesByKey.put(ruleDto.getKey(), rule);
rulesByUuid.put(ruleDto.getUuid(), rule);
diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java
index 582475e04da..31b13e5d787 100644
--- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java
+++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java
@@ -19,9 +19,7 @@
*/
package org.sonar.ce.task.projectanalysis.step;
-import com.google.common.base.Joiner;
import java.util.Date;
-import java.util.List;
import java.util.Optional;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
@@ -34,12 +32,10 @@ import org.sonar.ce.task.projectanalysis.batch.BatchReportReader;
import org.sonar.ce.task.projectanalysis.component.BranchLoader;
import org.sonar.ce.task.step.ComputationStep;
import org.sonar.core.platform.PluginRepository;
-import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
-import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.scanner.protocol.output.ScannerReport;
import org.sonar.scanner.protocol.output.ScannerReport.Metadata.Plugin;
import org.sonar.scanner.protocol.output.ScannerReport.Metadata.QProfile;
@@ -51,7 +47,6 @@ import org.sonar.server.qualityprofile.QualityProfile;
import static com.google.common.base.Preconditions.checkState;
import static java.lang.String.format;
import static java.util.stream.Collectors.toMap;
-import static org.sonar.core.util.stream.MoreCollectors.toList;
/**
* Feed analysis metadata holder with metadata from the analysis report.
@@ -86,7 +81,7 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep {
loadMetadata(reportMetadata);
Organization organization = loadOrganization(reportMetadata);
Runnable projectValidation = loadProject(reportMetadata, organization);
- loadQualityProfiles(reportMetadata, organization);
+ loadQualityProfiles(reportMetadata);
branchLoader.load(reportMetadata);
projectValidation.run();
}
@@ -145,8 +140,7 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep {
}
}
- private void loadQualityProfiles(ScannerReport.Metadata reportMetadata, Organization organization) {
- checkQualityProfilesConsistency(reportMetadata, organization);
+ private void loadQualityProfiles(ScannerReport.Metadata reportMetadata) {
analysisMetadata.setQProfilesByLanguage(reportMetadata.getQprofilesPerLanguageMap().values().stream()
.collect(toMap(
QProfile::getLanguage,
@@ -167,25 +161,6 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep {
return pluginRepository.getPluginInfo(p.getKey()).getBasePlugin();
}
- /**
- * Check that the Quality profiles sent by scanner correctly relate to the project organization.
- */
- private void checkQualityProfilesConsistency(ScannerReport.Metadata metadata, Organization organization) {
- List<String> profileKeys = metadata.getQprofilesPerLanguageMap().values().stream()
- .map(QProfile::getKey)
- .collect(toList(metadata.getQprofilesPerLanguageMap().size()));
- try (DbSession dbSession = dbClient.openSession(false)) {
- List<QProfileDto> profiles = dbClient.qualityProfileDao().selectByUuids(dbSession, profileKeys);
- String badKeys = profiles.stream()
- .filter(p -> !p.getOrganizationUuid().equals(organization.getUuid()))
- .map(QProfileDto::getKee)
- .collect(MoreCollectors.join(Joiner.on(", ")));
- if (!badKeys.isEmpty()) {
- throw MessageException.of(format("Quality profiles with following keys don't exist in organization [%s]: %s", organization.getKey(), badKeys));
- }
- }
- }
-
private void checkOrganizationKeyConsistency(ScannerReport.Metadata reportMetadata, Organization organization) {
String organizationKey = reportMetadata.getOrganizationKey();
String resolveReportOrganizationKey = resolveReportOrganizationKey(organizationKey);
diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/AdHocRuleCreatorTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/AdHocRuleCreatorTest.java
index 4d259df8683..46a427db219 100644
--- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/AdHocRuleCreatorTest.java
+++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/AdHocRuleCreatorTest.java
@@ -27,7 +27,6 @@ import org.sonar.api.utils.System2;
import org.sonar.core.util.SequenceUuidFactory;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleMetadataDto;
@@ -52,10 +51,9 @@ public class AdHocRuleCreatorTest {
@Test
public void create_ad_hoc_rule_from_issue() {
- OrganizationDto organization = db.organizations().insert();
NewAdHocRule addHocRule = new NewAdHocRule(ScannerReport.ExternalIssue.newBuilder().setEngineId("eslint").setRuleId("no-cond-assign").build());
- RuleDto rule = underTest.persistAndIndex(dbSession, addHocRule, organization);
+ RuleDto rule = underTest.persistAndIndex(dbSession, addHocRule);
assertThat(rule).isNotNull();
assertThat(rule.isExternal()).isTrue();
@@ -74,7 +72,6 @@ public class AdHocRuleCreatorTest {
@Test
public void create_ad_hoc_rule_from_scanner_report() {
- OrganizationDto organization = db.organizations().insert();
NewAdHocRule addHocRule = new NewAdHocRule(ScannerReport.AdHocRule.newBuilder()
.setEngineId("eslint")
.setRuleId("no-cond-assign")
@@ -84,7 +81,7 @@ public class AdHocRuleCreatorTest {
.setType(ScannerReport.IssueType.BUG)
.build());
- RuleDto rule = underTest.persistAndIndex(dbSession, addHocRule, organization);
+ RuleDto rule = underTest.persistAndIndex(dbSession, addHocRule);
assertThat(rule).isNotNull();
assertThat(rule.isExternal()).isTrue();
@@ -103,7 +100,6 @@ public class AdHocRuleCreatorTest {
@Test
public void truncate_metadata_name_and_desc_if_longer_than_max_value() {
- OrganizationDto organization = db.organizations().insert();
NewAdHocRule addHocRule = new NewAdHocRule(ScannerReport.AdHocRule.newBuilder()
.setEngineId("eslint")
.setRuleId("no-cond-assign")
@@ -113,7 +109,7 @@ public class AdHocRuleCreatorTest {
.setType(ScannerReport.IssueType.BUG)
.build());
- RuleDto rule = underTest.persistAndIndex(dbSession, addHocRule, organization);
+ RuleDto rule = underTest.persistAndIndex(dbSession, addHocRule);
assertThat(rule.getMetadata().getAdHocName()).isEqualTo(repeat("a", 200));
assertThat(rule.getMetadata().getAdHocDescription()).isEqualTo(repeat("a", 16_777_215));
@@ -121,7 +117,6 @@ public class AdHocRuleCreatorTest {
@Test
public void update_metadata_only() {
- OrganizationDto organization = db.organizations().insert();
NewAdHocRule addHocRule = new NewAdHocRule(ScannerReport.AdHocRule.newBuilder()
.setEngineId("eslint")
.setRuleId("no-cond-assign")
@@ -130,7 +125,7 @@ public class AdHocRuleCreatorTest {
.setSeverity(Constants.Severity.BLOCKER)
.setType(ScannerReport.IssueType.BUG)
.build());
- RuleDto rule = underTest.persistAndIndex(dbSession, addHocRule, organization);
+ RuleDto rule = underTest.persistAndIndex(dbSession, addHocRule);
long creationDate = rule.getCreatedAt();
NewAdHocRule addHocRuleUpdated = new NewAdHocRule(ScannerReport.AdHocRule.newBuilder()
.setEngineId("eslint")
@@ -141,7 +136,7 @@ public class AdHocRuleCreatorTest {
.setType(ScannerReport.IssueType.CODE_SMELL)
.build());
- RuleDto ruleUpdated = underTest.persistAndIndex(dbSession, addHocRuleUpdated, organization);
+ RuleDto ruleUpdated = underTest.persistAndIndex(dbSession, addHocRuleUpdated);
assertThat(ruleUpdated).isNotNull();
assertThat(ruleUpdated.isExternal()).isTrue();
@@ -163,9 +158,8 @@ public class AdHocRuleCreatorTest {
@Test
public void does_not_update_rule_when_no_change() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule = db.rules().insert(r -> r.setRepositoryKey("external_eslint").setIsExternal(true).setIsAdHoc(true));
- RuleMetadataDto ruleMetadata = db.rules().insertOrUpdateMetadata(rule, organization);
+ RuleMetadataDto ruleMetadata = db.rules().insertOrUpdateMetadata(rule);
RuleDto ruleUpdated = underTest.persistAndIndex(dbSession, new NewAdHocRule(ScannerReport.AdHocRule.newBuilder()
.setEngineId("eslint")
@@ -174,8 +168,7 @@ public class AdHocRuleCreatorTest {
.setDescription(ruleMetadata.getAdHocDescription())
.setSeverity(Constants.Severity.valueOf(ruleMetadata.getAdHocSeverity()))
.setType(ScannerReport.IssueType.forNumber(ruleMetadata.getAdHocType()))
- .build()),
- organization);
+ .build()));
assertThat(ruleUpdated).isNotNull();
assertThat(ruleUpdated.isExternal()).isTrue();
diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/RuleRepositoryImplTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/RuleRepositoryImplTest.java
index 7e2e87fc10b..1204f361642 100644
--- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/RuleRepositoryImplTest.java
+++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/RuleRepositoryImplTest.java
@@ -64,9 +64,6 @@ public class RuleRepositoryImplTest {
@org.junit.Rule
public ExpectedException expectedException = ExpectedException.none();
- @org.junit.Rule
- public AnalysisMetadataHolderRule analysisMetadataHolder = new AnalysisMetadataHolderRule()
- .setOrganizationUuid(ORGANIZATION_UUID, QUALITY_GATE_UUID);
@org.junit.Rule
public DbTester db = DbTester.create(System2.INSTANCE);
@@ -77,13 +74,13 @@ public class RuleRepositoryImplTest {
private RuleIndexer ruleIndexer = mock(RuleIndexer.class);
private AdHocRuleCreator adHocRuleCreator = new AdHocRuleCreator(db.getDbClient(), System2.INSTANCE, ruleIndexer, new SequenceUuidFactory());
- private RuleRepositoryImpl underTest = new RuleRepositoryImpl(adHocRuleCreator, dbClient, analysisMetadataHolder);
+ private RuleRepositoryImpl underTest = new RuleRepositoryImpl(adHocRuleCreator, dbClient);
@Before
public void setUp() {
when(dbClient.openSession(anyBoolean())).thenReturn(dbSession);
when(dbClient.ruleDao()).thenReturn(ruleDao);
- when(ruleDao.selectAll(any(DbSession.class), eq(ORGANIZATION_UUID))).thenReturn(ImmutableList.of(AB_RULE));
+ when(ruleDao.selectAll(any(DbSession.class))).thenReturn(ImmutableList.of(AB_RULE));
DeprecatedRuleKeyDto abDeprecatedRuleKey1 = deprecatedRuleKeyOf(AB_RULE, AB_RULE_DEPRECATED_KEY_1);
DeprecatedRuleKeyDto abDeprecatedRuleKey2 = deprecatedRuleKeyOf(AB_RULE, AB_RULE_DEPRECATED_KEY_2);
DeprecatedRuleKeyDto deprecatedRuleOfNonExistingRule = deprecatedRuleKeyOf("unknown-rule-uuid", DEPRECATED_KEY_OF_NON_EXITING_RULE);
@@ -110,7 +107,7 @@ public class RuleRepositoryImplTest {
public void first_call_to_getByKey_triggers_call_to_db_and_any_subsequent_get_or_find_call_does_not() {
underTest.getByKey(AB_RULE.getKey());
- verify(ruleDao, times(1)).selectAll(any(DbSession.class), eq(ORGANIZATION_UUID));
+ verify(ruleDao, times(1)).selectAll(any(DbSession.class));
verifyNoMethodCallTriggersCallToDB();
}
@@ -119,7 +116,7 @@ public class RuleRepositoryImplTest {
public void first_call_to_findByKey_triggers_call_to_db_and_any_subsequent_get_or_find_call_does_not() {
underTest.findByKey(AB_RULE.getKey());
- verify(ruleDao, times(1)).selectAll(any(DbSession.class), eq(ORGANIZATION_UUID));
+ verify(ruleDao, times(1)).selectAll(any(DbSession.class));
verifyNoMethodCallTriggersCallToDB();
}
@@ -128,7 +125,7 @@ public class RuleRepositoryImplTest {
public void first_call_to_getById_triggers_call_to_db_and_any_subsequent_get_or_find_call_does_not() {
underTest.getByUuid(AB_RULE.getUuid());
- verify(ruleDao, times(1)).selectAll(any(DbSession.class), eq(ORGANIZATION_UUID));
+ verify(ruleDao, times(1)).selectAll(any(DbSession.class));
verifyNoMethodCallTriggersCallToDB();
}
@@ -137,7 +134,7 @@ public class RuleRepositoryImplTest {
public void first_call_to_findById_triggers_call_to_db_and_any_subsequent_get_or_find_call_does_not() {
underTest.findByUuid(AB_RULE.getUuid());
- verify(ruleDao, times(1)).selectAll(any(DbSession.class), eq(ORGANIZATION_UUID));
+ verify(ruleDao, times(1)).selectAll(any(DbSession.class));
verifyNoMethodCallTriggersCallToDB();
}
@@ -280,7 +277,7 @@ public class RuleRepositoryImplTest {
@Test
public void persist_new_externally_defined_Rules() {
- underTest = new RuleRepositoryImpl(adHocRuleCreator, db.getDbClient(), analysisMetadataHolder);
+ underTest = new RuleRepositoryImpl(adHocRuleCreator, db.getDbClient());
RuleKey ruleKey = RuleKey.of("external_eslint", "no-cond-assign");
underTest.addOrUpdateAddHocRuleIfNeeded(ruleKey, () -> new NewAdHocRule(ScannerReport.ExternalIssue.newBuilder().setEngineId("eslint").setRuleId("no-cond-assign").build()));
diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java
index 4d10423cfff..8c4ebcc864f 100644
--- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java
+++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStepTest.java
@@ -205,7 +205,8 @@ public class LoadReportAnalysisMetadataHolderStepTest {
ComputationStep underTest = createStep(res);
expectedException.expect(MessageException.class);
- expectedException.expectMessage("Compute Engine task main component key is null. Project with UUID main_prj_uuid must have been deleted since report was uploaded. Can not proceed.");
+ expectedException
+ .expectMessage("Compute Engine task main component key is null. Project with UUID main_prj_uuid must have been deleted since report was uploaded. Can not proceed.");
underTest.execute(new TestComputationStepContext());
}
@@ -358,49 +359,6 @@ public class LoadReportAnalysisMetadataHolderStepTest {
}
@Test
- public void execute_ensures_that_report_has_quality_profiles_matching_the_project_organization() {
- OrganizationDto organization = db.organizations().insert();
- ComponentDto project = db.components().insertPublicProject(organization);
- ScannerReport.Metadata.Builder metadataBuilder = newBatchReportBuilder();
- metadataBuilder
- .setOrganizationKey(organization.getKey())
- .setProjectKey(project.getDbKey());
- metadataBuilder.getMutableQprofilesPerLanguage().put("js", ScannerReport.Metadata.QProfile.newBuilder().setKey("p1").setName("Sonar way").setLanguage("js").build());
- reportReader.setMetadata(metadataBuilder.build());
-
- db.qualityProfiles().insert(organization, p -> p.setLanguage("js").setKee("p1"));
-
- ComputationStep underTest = createStep(createCeTask(project.getDbKey(), organization.getUuid()));
-
- // no errors
- underTest.execute(new TestComputationStepContext());
- }
-
- @Test
- public void execute_fails_with_MessageException_when_report_has_quality_profiles_on_other_organizations() {
- OrganizationDto organization1 = db.organizations().insert();
- OrganizationDto organization2 = db.organizations().insert();
- ComponentDto projectInOrg1 = db.components().insertPublicProject(organization1);
- ScannerReport.Metadata.Builder metadataBuilder = newBatchReportBuilder();
- metadataBuilder
- .setOrganizationKey(organization1.getKey())
- .setProjectKey(projectInOrg1.getDbKey());
- metadataBuilder.putQprofilesPerLanguage("js", ScannerReport.Metadata.QProfile.newBuilder().setKey("jsInOrg1").setName("Sonar way").setLanguage("js").build());
- metadataBuilder.putQprofilesPerLanguage("php", ScannerReport.Metadata.QProfile.newBuilder().setKey("phpInOrg2").setName("PHP way").setLanguage("php").build());
- reportReader.setMetadata(metadataBuilder.build());
-
- db.qualityProfiles().insert(organization1, p -> p.setLanguage("js").setKee("jsInOrg1"));
- db.qualityProfiles().insert(organization2, p -> p.setLanguage("php").setKee("phpInOrg2"));
-
- ComputationStep underTest = createStep(createCeTask(projectInOrg1.getDbKey(), organization1.getUuid()));
-
- expectedException.expect(MessageException.class);
- expectedException.expectMessage("Quality profiles with following keys don't exist in organization [" + organization1.getKey() + "]: phpInOrg2");
-
- underTest.execute(new TestComputationStepContext());
- }
-
- @Test
public void execute_does_not_fail_when_report_has_a_quality_profile_that_does_not_exist_anymore() {
OrganizationDto organization = db.organizations().insert();
ComponentDto project = db.components().insertPublicProject(organization);
diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistAdHocRulesStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistAdHocRulesStepTest.java
index 939ee87853a..2aa58c65beb 100644
--- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistAdHocRulesStepTest.java
+++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistAdHocRulesStepTest.java
@@ -48,10 +48,6 @@ public class PersistAdHocRulesStepTest extends BaseStepTest {
@Rule
public DbTester db = DbTester.create(System2.INSTANCE);
- @Rule
- public AnalysisMetadataHolderRule analysisMetadataHolder = new AnalysisMetadataHolderRule()
- .setOrganizationUuid("org-1", "qg-uuid-1");
-
private DbClient dbClient = db.getDbClient();
private ComputationStep underTest;
@@ -70,13 +66,12 @@ public class PersistAdHocRulesStepTest extends BaseStepTest {
@Before
public void setup() {
- ruleRepository = new RuleRepositoryImpl(adHocRuleCreator, dbClient, analysisMetadataHolder);
+ ruleRepository = new RuleRepositoryImpl(adHocRuleCreator, dbClient);
underTest = new PersistAdHocRulesStep(dbClient, ruleRepository);
}
@Test
public void persist_and_index_new_ad_hoc_rules() {
-
RuleKey ruleKey = RuleKey.of("external_eslint", "no-cond-assign");
ruleRepository.addOrUpdateAddHocRuleIfNeeded(ruleKey,
() -> new NewAdHocRule(ScannerReport.ExternalIssue.newBuilder().setEngineId("eslint").setRuleId("no-cond-assign").build()));
diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStepTest.java
index 7779b704c23..fb6d7c5fcaa 100644
--- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStepTest.java
+++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/PersistIssuesStepTest.java
@@ -81,9 +81,6 @@ public class PersistIssuesStepTest extends BaseStepTest {
public DbTester db = DbTester.create(System2.INSTANCE);
@Rule
public BatchReportReaderRule reportReader = new BatchReportReaderRule();
- @Rule
- public AnalysisMetadataHolderRule analysisMetadataHolder = new AnalysisMetadataHolderRule()
- .setOrganizationUuid("org-1", "qg-uuid-1");
private System2 system2 = mock(System2.class);
private DbSession session = db.getSession();
@@ -104,7 +101,7 @@ public class PersistIssuesStepTest extends BaseStepTest {
protoIssueCache = new ProtoIssueCache(temp.newFile(), System2.INSTANCE);
reportReader.setMetadata(ScannerReport.Metadata.getDefaultInstance());
- underTest = new PersistIssuesStep(dbClient, system2, conflictResolver, new RuleRepositoryImpl(adHocRuleCreator, dbClient, analysisMetadataHolder), protoIssueCache,
+ underTest = new PersistIssuesStep(dbClient, system2, conflictResolver, new RuleRepositoryImpl(adHocRuleCreator, dbClient), protoIssueCache,
new IssueStorage(), new SequenceUuidFactory());
}
diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java
index 7ad6b12745c..514531a2ccd 100644
--- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java
+++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ViewsPersistComponentsStepTest.java
@@ -99,7 +99,6 @@ public class ViewsPersistComponentsStepTest extends BaseStepTest {
now = DATE_FORMAT.parse("2015-06-02");
when(system2.now()).thenReturn(now.getTime());
- dbTester.organizations().insertForUuid(ORGANIZATION_UUID);
analysisMetadataHolder.setBranch(new DefaultBranchImpl());
BranchPersister branchPersister = mock(BranchPersister.class);
ProjectPersister projectPersister = mock(ProjectPersister.class);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/es/RuleExtensionId.java b/server/sonar-db-dao/src/main/java/org/sonar/db/es/RuleExtensionId.java
deleted file mode 100644
index ded4facd8c2..00000000000
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/es/RuleExtensionId.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2020 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.db.es;
-
-import com.google.common.base.CharMatcher;
-import com.google.common.base.Splitter;
-import java.util.List;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static java.lang.String.format;
-
-public class RuleExtensionId {
- private final String ruleUuid;
- private final String organizationUuid;
- private final String id;
-
- private static final Splitter ID_SPLITTER = Splitter.on(CharMatcher.anyOf("|"));
-
- public RuleExtensionId(String organizationUuid, String ruleUuid) {
- this.organizationUuid = organizationUuid;
- this.ruleUuid = ruleUuid;
- this.id = format("%s|%s", ruleUuid, organizationUuid);
- }
-
- public RuleExtensionId(String ruleExtensionId) {
- List<String> splittedId = ID_SPLITTER.splitToList(ruleExtensionId);
- checkArgument(splittedId.size() == 2, "Incorrect Id %s", ruleExtensionId);
- this.id = ruleExtensionId;
- this.ruleUuid = splittedId.get(0);
- this.organizationUuid = splittedId.get(1);
- }
-
- public String getRuleUuid() {
- return this.ruleUuid;
- }
-
- public String getOrganizationUuid() {
- return organizationUuid;
- }
-
- public String getId() {
- return id;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (!(o instanceof RuleExtensionId)) {
- return false;
- }
-
- RuleExtensionId that = (RuleExtensionId) o;
-
- return id.equals(that.id);
- }
-
- @Override
- public int hashCode() {
- return id.hashCode();
- }
-}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleCountQuery.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleCountQuery.java
index 451627bc42f..d95e39f5a49 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleCountQuery.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleCountQuery.java
@@ -24,13 +24,11 @@ import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.sonar.api.rule.RuleStatus;
import org.sonar.core.util.stream.MoreCollectors;
-import org.sonar.db.organization.OrganizationDto;
import static com.google.common.base.Preconditions.checkState;
public class ActiveRuleCountQuery {
- private final OrganizationDto organization;
private final List<String> profileUuids;
private final RuleStatus ruleStatus;
private final String inheritance;
@@ -39,11 +37,6 @@ public class ActiveRuleCountQuery {
this.profileUuids = builder.profiles.stream().map(QProfileDto::getKee).collect(MoreCollectors.toList());
this.ruleStatus = builder.ruleStatus;
this.inheritance = builder.inheritance;
- this.organization = builder.organization;
- }
-
- public OrganizationDto getOrganization() {
- return organization;
}
public List<String> getProfileUuids() {
@@ -68,16 +61,10 @@ public class ActiveRuleCountQuery {
}
public static class Builder {
- private OrganizationDto organization;
private List<QProfileDto> profiles;
private RuleStatus ruleStatus;
private String inheritance;
- public Builder setOrganization(OrganizationDto organization) {
- this.organization = organization;
- return this;
- }
-
public Builder setProfiles(List<QProfileDto> profiles) {
this.profiles = profiles;
return this;
@@ -94,7 +81,6 @@ public class ActiveRuleCountQuery {
}
public ActiveRuleCountQuery build() {
- checkState(organization != null, "Organization cannot be null");
checkState(profiles != null, "Profiles cannot be null");
return new ActiveRuleCountQuery(this);
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleDao.java
index 650e7dd6a5c..bd7812d76e4 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleDao.java
@@ -29,7 +29,6 @@ import org.sonar.core.util.UuidFactory;
import org.sonar.db.Dao;
import org.sonar.db.DatabaseUtils;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleParamDto;
import static com.google.common.base.Preconditions.checkArgument;
@@ -58,16 +57,16 @@ public class ActiveRuleDao implements Dao {
return Optional.ofNullable(mapper(dbSession).selectByKey(key.getRuleProfileUuid(), key.getRuleKey().repository(), key.getRuleKey().rule()));
}
- public List<OrgActiveRuleDto> selectByRuleUuid(DbSession dbSession, OrganizationDto organization, String ruleUuid) {
- return mapper(dbSession).selectByRuleUuid(organization.getUuid(), ruleUuid);
+ public List<OrgActiveRuleDto> selectByOrgRuleUuid(DbSession dbSession, String ruleUuid) {
+ return mapper(dbSession).selectOrgByRuleUuid(ruleUuid);
}
- public List<ActiveRuleDto> selectByRuleUuidOfAllOrganizations(DbSession dbSession, String ruleUuid) {
- return mapper(dbSession).selectByRuleUuidOfAllOrganizations(ruleUuid);
+ public List<ActiveRuleDto> selectByRuleUuid(DbSession dbSession, String ruleUuid) {
+ return mapper(dbSession).selectByRuleUuid(ruleUuid);
}
- public List<OrgActiveRuleDto> selectByRuleUuids(DbSession dbSession, OrganizationDto organization, List<String> uuids) {
- return executeLargeInputs(uuids, chunk -> mapper(dbSession).selectByRuleUuids(organization.getUuid(), chunk));
+ public List<OrgActiveRuleDto> selectByRuleUuids(DbSession dbSession, List<String> uuids) {
+ return executeLargeInputs(uuids, chunk -> mapper(dbSession).selectByRuleUuids(chunk));
}
/**
@@ -176,8 +175,8 @@ public class ActiveRuleDao implements Dao {
mapper(dbSession).deleteParameter(uuid);
}
- public void deleteParamsByRuleParamOfAllOrganizations(DbSession dbSession, RuleParamDto param) {
- List<ActiveRuleDto> activeRules = selectByRuleUuidOfAllOrganizations(dbSession, param.getRuleUuid());
+ public void deleteParamsByRuleParam(DbSession dbSession, RuleParamDto param) {
+ List<ActiveRuleDto> activeRules = selectByRuleUuid(dbSession, param.getRuleUuid());
for (ActiveRuleDto activeRule : activeRules) {
for (ActiveRuleParamDto activeParam : selectParamsByActiveRuleUuid(dbSession, activeRule.getUuid())) {
if (activeParam.getKey().equals(param.getName())) {
@@ -194,7 +193,7 @@ public class ActiveRuleDao implements Dao {
public Map<String, Long> countActiveRulesByQuery(DbSession dbSession, ActiveRuleCountQuery query) {
return toMap(executeLargeInputs(query.getProfileUuids(),
- partition -> mapper(dbSession).countActiveRulesByQuery(query.getOrganization().getUuid(), partition, query.getRuleStatus(), query.getInheritance())));
+ partition -> mapper(dbSession).countActiveRulesByQuery(partition, query.getRuleStatus(), query.getInheritance())));
}
public void scrollAllForIndexing(DbSession dbSession, Consumer<IndexedActiveRuleDto> consumer) {
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleMapper.java
index c7909a8cdd2..79c6a766a57 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/ActiveRuleMapper.java
@@ -45,11 +45,11 @@ public interface ActiveRuleMapper {
List<ActiveRuleDto> selectByKeys(@Param("keys") List<ActiveRuleKey> keys);
- List<OrgActiveRuleDto> selectByRuleUuid(@Param("organizationUuid") String organizationUuid, @Param("ruleUuid") String ruleUuid);
+ List<OrgActiveRuleDto> selectOrgByRuleUuid(@Param("ruleUuid") String ruleUuid);
- List<ActiveRuleDto> selectByRuleUuidOfAllOrganizations(String ruleUuid);
+ List<ActiveRuleDto> selectByRuleUuid(String ruleUuid);
- List<OrgActiveRuleDto> selectByRuleUuids(@Param("organizationUuid") String organizationUuid, @Param("ruleUuids") List<String> partitionOfRuleUuids);
+ List<OrgActiveRuleDto> selectByRuleUuids(@Param("ruleUuids") List<String> partitionOfRuleUuids);
List<OrgActiveRuleDto> selectByProfileUuid(String uuid);
@@ -77,7 +77,7 @@ public interface ActiveRuleMapper {
List<ActiveRuleParamDto> selectParamsByActiveRuleUuids(@Param("uuids") List<String> uuids);
- List<KeyLongValue> countActiveRulesByQuery(@Param("organizationUuid") String organizationUuid, @Param("profileUuids") List<String> profileUuids,
+ List<KeyLongValue> countActiveRulesByQuery(@Param("profileUuids") List<String> profileUuids,
@Nullable @Param("ruleStatus") RuleStatus ruleStatus, @Param("inheritance") String inheritance);
void scrollAllForIndexing(ResultHandler<IndexedActiveRuleDto> handler);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileDao.java
index 908131cee6a..ad0b922ce26 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileDao.java
@@ -21,6 +21,7 @@ package org.sonar.db.qualityprofile;
import java.util.Collection;
import java.util.HashSet;
+import java.util.Optional;
import java.util.Set;
import org.sonar.api.utils.System2;
import org.sonar.db.Dao;
@@ -50,16 +51,16 @@ public class DefaultQProfileDao implements Dao {
DatabaseUtils.executeLargeUpdates(qProfileUuids, mapper::deleteByQProfileUuids);
}
- public Set<String> selectExistingQProfileUuids(DbSession dbSession, String organizationUuid, Collection<String> qProfileUuids) {
- return new HashSet<>(DatabaseUtils.executeLargeInputs(qProfileUuids, uuids -> mapper(dbSession).selectExistingQProfileUuids(organizationUuid, uuids)));
+ public Set<String> selectExistingQProfileUuids(DbSession dbSession, Collection<String> qProfileUuids) {
+ return new HashSet<>(DatabaseUtils.executeLargeInputs(qProfileUuids, uuids -> mapper(dbSession).selectExistingQProfileUuids(uuids)));
}
- public boolean isDefault(DbSession dbSession, String organizationUuid, String qProfileUuid) {
- return selectExistingQProfileUuids(dbSession, organizationUuid, singletonList(qProfileUuid)).contains(qProfileUuid);
+ public boolean isDefault(DbSession dbSession, String qProfileUuid) {
+ return selectExistingQProfileUuids(dbSession, singletonList(qProfileUuid)).contains(qProfileUuid);
}
- public Set<String> selectUuidsOfOrganizationsWithoutDefaultProfile(DbSession dbSession, String language) {
- return mapper(dbSession).selectUuidsOfOrganizationsWithoutDefaultProfile(language);
+ public Optional<String> selectDefaultQProfileUuid(DbSession dbSession, String language) {
+ return mapper(dbSession).selectDefaultQProfileUuid(language);
}
private static DefaultQProfileMapper mapper(DbSession dbSession) {
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileDto.java
index bb8ede8827f..cc950c65d46 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileDto.java
@@ -20,20 +20,9 @@
package org.sonar.db.qualityprofile;
public class DefaultQProfileDto {
-
- private String organizationUuid;
private String language;
private String qProfileUuid;
- public String getOrganizationUuid() {
- return organizationUuid;
- }
-
- public DefaultQProfileDto setOrganizationUuid(String s) {
- this.organizationUuid = s;
- return this;
- }
-
public String getLanguage() {
return language;
}
@@ -54,7 +43,6 @@ public class DefaultQProfileDto {
public static DefaultQProfileDto from(QProfileDto profile) {
return new DefaultQProfileDto()
- .setOrganizationUuid(profile.getOrganizationUuid())
.setLanguage(profile.getLanguage())
.setQProfileUuid(profile.getKee());
}
@@ -62,7 +50,6 @@ public class DefaultQProfileDto {
@Override
public String toString() {
StringBuilder sb = new StringBuilder("DefaultQProfileDto{");
- sb.append("organizationUuid='").append(organizationUuid).append('\'');
sb.append(", language='").append(language).append('\'');
sb.append(", qProfileUuid='").append(qProfileUuid).append('\'');
sb.append('}');
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileMapper.java
index 35602099d10..973c7736c5b 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/DefaultQProfileMapper.java
@@ -21,7 +21,7 @@ package org.sonar.db.qualityprofile;
import java.util.Collection;
import java.util.List;
-import java.util.Set;
+import java.util.Optional;
import org.apache.ibatis.annotations.Param;
public interface DefaultQProfileMapper {
@@ -31,9 +31,7 @@ public interface DefaultQProfileMapper {
void deleteByQProfileUuids(@Param("qProfileUuids") Collection<String> qProfileUuids);
- List<String> selectExistingQProfileUuids(
- @Param("organizationUuid") String organizationUuid,
- @Param("qProfileUuids") Collection<String> qProfileUuids);
+ List<String> selectExistingQProfileUuids(@Param("qProfileUuids") Collection<String> qProfileUuids);
- Set<String> selectUuidsOfOrganizationsWithoutDefaultProfile(@Param("language") String language);
+ Optional<String> selectDefaultQProfileUuid(@Param("language") String language);
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/OrgActiveRuleDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/OrgActiveRuleDto.java
index 59aacb3335a..fc00ce43121 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/OrgActiveRuleDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/OrgActiveRuleDto.java
@@ -20,19 +20,8 @@
package org.sonar.db.qualityprofile;
public class OrgActiveRuleDto extends ActiveRuleDto {
-
- private String organizationUuid;
private String orgProfileUuid;
- public String getOrganizationUuid() {
- return organizationUuid;
- }
-
- public OrgActiveRuleDto setOrganizationUuid(String s) {
- this.organizationUuid = s;
- return this;
- }
-
public String getOrgProfileUuid() {
return orgProfileUuid;
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/OrgQProfileDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/OrgQProfileDto.java
index e513e440527..c408a8f96e6 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/OrgQProfileDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/OrgQProfileDto.java
@@ -40,11 +40,6 @@ public class OrgQProfileDto {
private String uuid;
/**
- * UUID of organization. Not null.
- */
- private String organizationUuid;
-
- /**
* UUID of referenced row in table "rules_profiles". Not null.
*/
private String rulesProfileUuid;
@@ -53,15 +48,6 @@ public class OrgQProfileDto {
private Long lastUsed;
private Long userUpdatedAt;
- public String getOrganizationUuid() {
- return organizationUuid;
- }
-
- public OrgQProfileDto setOrganizationUuid(String organizationUuid) {
- this.organizationUuid = organizationUuid;
- return this;
- }
-
public String getUuid() {
return uuid;
}
@@ -113,7 +99,6 @@ public class OrgQProfileDto {
public static OrgQProfileDto from(QProfileDto qProfileDto) {
return new OrgQProfileDto()
.setUuid(qProfileDto.getKee())
- .setOrganizationUuid(qProfileDto.getOrganizationUuid())
.setRulesProfileUuid(qProfileDto.getRulesProfileUuid())
.setParentUuid(qProfileDto.getParentKee())
.setLastUsed(qProfileDto.getLastUsed())
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileDto.java
index ff041a371f8..5dddcb64898 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileDto.java
@@ -23,19 +23,11 @@ import java.util.Date;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.sonar.core.util.UtcDateUtils;
-import org.sonar.db.organization.OrganizationDto;
/**
* Represents the join of "org_qprofiles" and "rules_profiles"
*/
public class QProfileDto {
-
- /**
- * The organization, that this quality profile belongs to.
- * Must not be null, but can be the default organization's uuid.
- * Refers to {@link OrganizationDto#getUuid()}.
- */
- private String organizationUuid;
private String kee;
private String name;
private String language;
@@ -46,15 +38,6 @@ public class QProfileDto {
private boolean isBuiltIn;
private String rulesProfileUuid;
- public String getOrganizationUuid() {
- return organizationUuid;
- }
-
- public QProfileDto setOrganizationUuid(String s) {
- this.organizationUuid = s;
- return this;
- }
-
public String getKee() {
return kee;
}
@@ -149,7 +132,6 @@ public class QProfileDto {
.setIsBuiltIn(rules.isBuiltIn())
.setKee(org.getUuid())
.setParentKee(org.getParentUuid())
- .setOrganizationUuid(org.getOrganizationUuid())
.setRulesProfileUuid(rules.getUuid())
.setLanguage(rules.getLanguage())
.setName(rules.getName())
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditGroupsDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditGroupsDao.java
index 1861da0c493..f4ac7780e38 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditGroupsDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditGroupsDao.java
@@ -27,7 +27,6 @@ import org.sonar.db.Dao;
import org.sonar.db.DatabaseUtils;
import org.sonar.db.DbSession;
import org.sonar.db.Pagination;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.user.GroupDto;
import static org.sonar.core.util.stream.MoreCollectors.toList;
@@ -59,9 +58,9 @@ public class QProfileEditGroupsDao implements Dao {
return mapper(dbSession).selectByQuery(query, pagination);
}
- public List<String> selectQProfileUuidsByOrganizationAndGroups(DbSession dbSession, OrganizationDto organization, Collection<GroupDto> groups) {
+ public List<String> selectQProfileUuidsByGroups(DbSession dbSession, Collection<GroupDto> groups) {
return DatabaseUtils.executeLargeInputs(groups.stream().map(GroupDto::getUuid).collect(toList()),
- g -> mapper(dbSession).selectQProfileUuidsByOrganizationAndGroups(organization.getUuid(), g));
+ g -> mapper(dbSession).selectQProfileUuidsByGroups(g));
}
public void insert(DbSession dbSession, QProfileEditGroupsDto dto) {
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditGroupsMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditGroupsMapper.java
index fbc41a420ae..fc5273efa62 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditGroupsMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditGroupsMapper.java
@@ -32,7 +32,7 @@ public interface QProfileEditGroupsMapper {
List<GroupMembershipDto> selectByQuery(@Param("query") SearchGroupsQuery query, @Param("pagination") Pagination pagination);
- List<String> selectQProfileUuidsByOrganizationAndGroups(@Param("organizationUuid") String organizationUuid, @Param("groupUuids") List<String> groupUuids);
+ List<String> selectQProfileUuidsByGroups(@Param("groupUuids") List<String> groupUuids);
void insert(@Param("dto") QProfileEditGroupsDto dto, @Param("now") long now);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditUsersDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditUsersDao.java
index c38a03a1f1c..eb837f87677 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditUsersDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditUsersDao.java
@@ -24,7 +24,6 @@ import org.sonar.api.utils.System2;
import org.sonar.db.Dao;
import org.sonar.db.DbSession;
import org.sonar.db.Pagination;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.user.UserDto;
import static org.sonar.core.util.stream.MoreCollectors.toList;
@@ -50,8 +49,8 @@ public class QProfileEditUsersDao implements Dao {
return mapper(dbSession).selectByQuery(query, pagination);
}
- public List<String> selectQProfileUuidsByOrganizationAndUser(DbSession dbSession, OrganizationDto organization, UserDto userDto) {
- return mapper(dbSession).selectQProfileUuidsByOrganizationAndUser(organization.getUuid(), userDto.getUuid());
+ public List<String> selectQProfileUuidsByUser(DbSession dbSession,UserDto userDto) {
+ return mapper(dbSession).selectQProfileUuidsByUser(userDto.getUuid());
}
public void insert(DbSession dbSession, QProfileEditUsersDto dto) {
@@ -70,10 +69,6 @@ public class QProfileEditUsersDao implements Dao {
mapper(dbSession).deleteByUser(user.getUuid());
}
- public void deleteByOrganizationAndUser(DbSession dbSession, OrganizationDto organization, UserDto user) {
- mapper(dbSession).deleteByOrganizationAndUser(organization.getUuid(), user.getUuid());
- }
-
private static QProfileEditUsersMapper mapper(DbSession dbSession) {
return dbSession.getMapper(QProfileEditUsersMapper.class);
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditUsersMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditUsersMapper.java
index 5a1cb6e486a..918122119bb 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditUsersMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QProfileEditUsersMapper.java
@@ -32,7 +32,7 @@ public interface QProfileEditUsersMapper {
List<UserMembershipDto> selectByQuery(@Param("query") SearchUsersQuery query, @Param("pagination") Pagination pagination);
- List<String> selectQProfileUuidsByOrganizationAndUser(@Param("organizationUuid") String organizationUuid, @Param("userUuid") String userUuid);
+ List<String> selectQProfileUuidsByUser(@Param("userUuid") String userUuid);
void insert(@Param("dto") QProfileEditUsersDto dto, @Param("now") long now);
@@ -41,6 +41,4 @@ public interface QProfileEditUsersMapper {
void deleteByQProfiles(@Param("qProfileUuids") Collection<String> qProfileUuids);
void deleteByUser(@Param("userUuid") String userUuid);
-
- void deleteByOrganizationAndUser(@Param("organizationUuid") String organizationUuid, @Param("userUuid") String userUuid);
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileDao.java
index 1c7c77b3e3b..fd71cfa5a7c 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileDao.java
@@ -36,7 +36,6 @@ import org.sonar.db.DatabaseUtils;
import org.sonar.db.DbSession;
import org.sonar.db.KeyLongValue;
import org.sonar.db.RowNotFoundException;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import static java.util.Collections.emptyList;
@@ -70,8 +69,8 @@ public class QualityProfileDao implements Dao {
return executeLargeInputs(uuids, mapper(dbSession)::selectByUuids);
}
- public List<QProfileDto> selectOrderedByOrganizationUuid(DbSession dbSession, OrganizationDto organization) {
- return mapper(dbSession).selectOrderedByOrganizationUuid(organization.getUuid());
+ public List<QProfileDto> selectAll(DbSession dbSession) {
+ return mapper(dbSession).selectAll();
}
public List<RulesProfileDto> selectBuiltInRuleProfiles(DbSession dbSession) {
@@ -142,8 +141,8 @@ public class QualityProfileDao implements Dao {
mapper.updateOrgQProfile(OrgQProfileDto.from(profile), now);
}
- public List<QProfileDto> selectDefaultProfiles(DbSession dbSession, OrganizationDto organization, Collection<String> languages) {
- return executeLargeInputs(languages, partition -> mapper(dbSession).selectDefaultProfiles(organization.getUuid(), partition));
+ public List<QProfileDto> selectDefaultProfiles(DbSession dbSession, Collection<String> languages) {
+ return executeLargeInputs(languages, partition -> mapper(dbSession).selectDefaultProfiles(partition));
}
public List<QProfileDto> selectDefaultBuiltInProfilesWithoutActiveRules(DbSession dbSession, Set<String> languages) {
@@ -151,21 +150,21 @@ public class QualityProfileDao implements Dao {
}
@CheckForNull
- public QProfileDto selectDefaultProfile(DbSession dbSession, OrganizationDto organization, String language) {
- return mapper(dbSession).selectDefaultProfile(organization.getUuid(), language);
+ public QProfileDto selectDefaultProfile(DbSession dbSession, String language) {
+ return mapper(dbSession).selectDefaultProfile(language);
}
@CheckForNull
public QProfileDto selectAssociatedToProjectAndLanguage(DbSession dbSession, ProjectDto project, String language) {
- return mapper(dbSession).selectAssociatedToProjectUuidAndLanguage(project.getOrganizationUuid(), project.getUuid(), language);
+ return mapper(dbSession).selectAssociatedToProjectUuidAndLanguage(project.getUuid(), language);
}
public List<QProfileDto> selectAssociatedToProjectUuidAndLanguages(DbSession dbSession, ProjectDto project, Collection<String> languages) {
- return executeLargeInputs(languages, partition -> mapper(dbSession).selectAssociatedToProjectUuidAndLanguages(project.getOrganizationUuid(), project.getUuid(), partition));
+ return executeLargeInputs(languages, partition -> mapper(dbSession).selectAssociatedToProjectUuidAndLanguages(project.getUuid(), partition));
}
- public List<QProfileDto> selectByLanguage(DbSession dbSession, OrganizationDto organization, String language) {
- return mapper(dbSession).selectByLanguage(organization.getUuid(), language);
+ public List<QProfileDto> selectByLanguage(DbSession dbSession, String language) {
+ return mapper(dbSession).selectByLanguage(language);
}
public List<QProfileDto> selectChildren(DbSession dbSession, Collection<QProfileDto> profiles) {
@@ -187,22 +186,22 @@ public class QualityProfileDao implements Dao {
}
@CheckForNull
- public QProfileDto selectByNameAndLanguage(DbSession dbSession, OrganizationDto organization, String name, String language) {
- return mapper(dbSession).selectByNameAndLanguage(organization.getUuid(), name, language);
+ public QProfileDto selectByNameAndLanguage(DbSession dbSession, String name, String language) {
+ return mapper(dbSession).selectByNameAndLanguage(name, language);
}
@CheckForNull
- public QProfileDto selectByRuleProfileUuid(DbSession dbSession, String organizationUuid, String ruleProfileKee) {
- return mapper(dbSession).selectByRuleProfileUuid(organizationUuid, ruleProfileKee);
+ public QProfileDto selectByRuleProfileUuid(DbSession dbSession, String ruleProfileKee) {
+ return mapper(dbSession).selectByRuleProfileUuid(ruleProfileKee);
}
- public List<QProfileDto> selectByNameAndLanguages(DbSession dbSession, OrganizationDto organization, String name, Collection<String> languages) {
- return mapper(dbSession).selectByNameAndLanguages(organization.getUuid(), name, languages);
+ public List<QProfileDto> selectByNameAndLanguages(DbSession dbSession, String name, Collection<String> languages) {
+ return mapper(dbSession).selectByNameAndLanguages(name, languages);
}
- public Map<String, Long> countProjectsByOrganizationAndProfiles(DbSession dbSession, OrganizationDto organization, List<QProfileDto> profiles) {
+ public Map<String, Long> countProjectsByProfiles(DbSession dbSession, List<QProfileDto> profiles) {
List<String> profileUuids = profiles.stream().map(QProfileDto::getKee).collect(MoreCollectors.toList());
- return KeyLongValue.toMap(executeLargeInputs(profileUuids, partition -> mapper(dbSession).countProjectsByOrganizationAndProfiles(organization.getUuid(), partition)));
+ return KeyLongValue.toMap(executeLargeInputs(profileUuids, partition -> mapper(dbSession).countProjectsByProfiles(partition)));
}
public void insertProjectProfileAssociation(DbSession dbSession, ProjectDto project, QProfileDto profile) {
@@ -222,19 +221,19 @@ public class QualityProfileDao implements Dao {
DatabaseUtils.executeLargeUpdates(profileUuids, mapper::deleteProjectAssociationByProfileUuids);
}
- public List<ProjectQprofileAssociationDto> selectSelectedProjects(DbSession dbSession, OrganizationDto organization, QProfileDto profile, @Nullable String query) {
+ public List<ProjectQprofileAssociationDto> selectSelectedProjects(DbSession dbSession, QProfileDto profile, @Nullable String query) {
String nameQuery = sqlQueryString(query);
- return mapper(dbSession).selectSelectedProjects(organization.getUuid(), profile.getKee(), nameQuery);
+ return mapper(dbSession).selectSelectedProjects(profile.getKee(), nameQuery);
}
- public List<ProjectQprofileAssociationDto> selectDeselectedProjects(DbSession dbSession, OrganizationDto organization, QProfileDto profile, @Nullable String query) {
+ public List<ProjectQprofileAssociationDto> selectDeselectedProjects(DbSession dbSession, QProfileDto profile, @Nullable String query) {
String nameQuery = sqlQueryString(query);
- return mapper(dbSession).selectDeselectedProjects(organization.getUuid(), profile.getKee(), nameQuery);
+ return mapper(dbSession).selectDeselectedProjects(profile.getKee(), nameQuery);
}
- public List<ProjectQprofileAssociationDto> selectProjectAssociations(DbSession dbSession, OrganizationDto organization, QProfileDto profile, @Nullable String query) {
+ public List<ProjectQprofileAssociationDto> selectProjectAssociations(DbSession dbSession, QProfileDto profile, @Nullable String query) {
String nameQuery = sqlQueryString(query);
- return mapper(dbSession).selectProjectAssociations(organization.getUuid(), profile.getKee(), nameQuery);
+ return mapper(dbSession).selectProjectAssociations(profile.getKee(), nameQuery);
}
public Collection<String> selectUuidsOfCustomRulesProfiles(DbSession dbSession, String language, String name) {
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileMapper.java
index 7679ac35c02..4f729c0eef3 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/QualityProfileMapper.java
@@ -47,41 +47,32 @@ public interface QualityProfileMapper {
@CheckForNull
RulesProfileDto selectRuleProfile(@Param("uuid") String ruleProfileUuid);
- List<QProfileDto> selectOrderedByOrganizationUuid(@Param("organizationUuid") String organizationUuid);
+ List<QProfileDto> selectAll();
@CheckForNull
- QProfileDto selectDefaultProfile(@Param("organizationUuid") String organizationUuid, @Param("language") String language);
+ QProfileDto selectDefaultProfile(@Param("language") String language);
List<QProfileDto> selectDefaultBuiltInProfilesWithoutActiveRules(@Param("languages") List<String> languages);
List<QProfileDto> selectDefaultProfiles(
- @Param("organizationUuid") String organizationUuid,
@Param("languages") Collection<String> languages);
@CheckForNull
QProfileDto selectByNameAndLanguage(
- @Param("organizationUuid") String organizationUuid,
@Param("name") String name,
@Param("language") String language);
@CheckForNull
- QProfileDto selectByRuleProfileUuid(
- @Param("organizationUuid") String organizationUuid,
- @Param("ruleProfileUuid") String ruleProfileKee);
+ QProfileDto selectByRuleProfileUuid(@Param("ruleProfileUuid") String ruleProfileKee);
- List<QProfileDto> selectByNameAndLanguages(
- @Param("organizationUuid") String organizationUuid,
- @Param("name") String name,
- @Param("languages") Collection<String> languages);
+ List<QProfileDto> selectByNameAndLanguages(@Param("name") String name, @Param("languages") Collection<String> languages);
@CheckForNull
QProfileDto selectByUuid(String uuid);
List<QProfileDto> selectByUuids(@Param("uuids") Collection<String> uuids);
- List<QProfileDto> selectByLanguage(
- @Param("organizationUuid") String organizationUuid,
- @Param("language") String language);
+ List<QProfileDto> selectByLanguage(@Param("language") String language);
// INHERITANCE
@@ -89,16 +80,14 @@ public interface QualityProfileMapper {
// PROJECTS
- List<KeyLongValue> countProjectsByOrganizationAndProfiles(@Param("organizationUuid") String organizationUuid, @Param("profileUuids") List<String> profiles);
+ List<KeyLongValue> countProjectsByProfiles(@Param("profileUuids") List<String> profiles);
@CheckForNull
QProfileDto selectAssociatedToProjectUuidAndLanguage(
- @Param("organizationUuid") String organizationUuid,
@Param("projectUuid") String projectUuid,
@Param("language") String language);
List<QProfileDto> selectAssociatedToProjectUuidAndLanguages(
- @Param("organizationUuid") String organizationUuid,
@Param("projectUuid") String projectUuid,
@Param("languages") Collection<String> languages);
@@ -117,17 +106,14 @@ public interface QualityProfileMapper {
void deleteProjectAssociationByProfileUuids(@Param("profileUuids") Collection<String> profileUuids);
List<ProjectQprofileAssociationDto> selectSelectedProjects(
- @Param("organizationUuid") String organizationUuid,
@Param("profileUuid") String profileUuid,
@Param("nameQuery") String nameQuery);
List<ProjectQprofileAssociationDto> selectDeselectedProjects(
- @Param("organizationUuid") String organizationUuid,
@Param("profileUuid") String profileUuid,
@Param("nameQuery") String nameQuery);
List<ProjectQprofileAssociationDto> selectProjectAssociations(
- @Param("organizationUuid") String organizationUuid,
@Param("profileUuid") String profileUuid,
@Param("nameQuery") String nameQuery);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchGroupsQuery.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchGroupsQuery.java
index 19a7ed4923a..48cb218df96 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchGroupsQuery.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchGroupsQuery.java
@@ -25,7 +25,6 @@ import java.util.Set;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.apache.commons.lang.StringUtils;
-import org.sonar.db.organization.OrganizationDto;
import static com.google.common.base.MoreObjects.firstNonNull;
import static com.google.common.base.Preconditions.checkArgument;
@@ -39,7 +38,6 @@ public class SearchGroupsQuery {
public static final String OUT = "OUT";
public static final Set<String> AVAILABLE_MEMBERSHIPS = ImmutableSet.of(ANY, IN, OUT);
- private final String organizationUuid;
private final String qProfileUuid;
private final String query;
private final String membership;
@@ -48,17 +46,12 @@ public class SearchGroupsQuery {
final String querySqlLowercase;
private SearchGroupsQuery(Builder builder) {
- this.organizationUuid = builder.organization.getUuid();
this.qProfileUuid = builder.profile.getKee();
this.query = builder.query;
this.membership = builder.membership;
this.querySqlLowercase = query == null ? null : buildLikeValue(query, BEFORE_AND_AFTER).toLowerCase(Locale.ENGLISH);
}
- public String getOrganizationUuid() {
- return organizationUuid;
- }
-
public String getQProfileUuid() {
return qProfileUuid;
}
@@ -77,7 +70,6 @@ public class SearchGroupsQuery {
}
public static class Builder {
- private OrganizationDto organization;
private QProfileDto profile;
private String query;
private String membership;
@@ -85,11 +77,6 @@ public class SearchGroupsQuery {
private Builder() {
}
- public Builder setOrganization(OrganizationDto organization) {
- this.organization = organization;
- return this;
- }
-
public Builder setProfile(QProfileDto profile) {
this.profile = profile;
return this;
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchUsersQuery.java b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchUsersQuery.java
index d11535ea5a3..a6e8f36a24c 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchUsersQuery.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/qualityprofile/SearchUsersQuery.java
@@ -25,7 +25,6 @@ import java.util.Set;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.apache.commons.lang.StringUtils;
-import org.sonar.db.organization.OrganizationDto;
import static com.google.common.base.MoreObjects.firstNonNull;
import static com.google.common.base.Preconditions.checkArgument;
@@ -40,7 +39,6 @@ public class SearchUsersQuery {
public static final String OUT = "OUT";
public static final Set<String> AVAILABLE_MEMBERSHIPS = ImmutableSet.of(ANY, IN, OUT);
- private final String organizationUuid;
private final String qProfileUuid;
private final String query;
private final String membership;
@@ -50,7 +48,6 @@ public class SearchUsersQuery {
final String querySqlLowercase;
private SearchUsersQuery(Builder builder) {
- this.organizationUuid = builder.organization.getUuid();
this.qProfileUuid = builder.profile.getKee();
this.query = builder.query;
this.membership = builder.membership;
@@ -58,10 +55,6 @@ public class SearchUsersQuery {
this.querySqlLowercase = querySql == null ? null : querySql.toLowerCase(Locale.ENGLISH);
}
- public String getOrganizationUuid() {
- return organizationUuid;
- }
-
public String getQProfileUuid() {
return qProfileUuid;
}
@@ -80,7 +73,6 @@ public class SearchUsersQuery {
}
public static class Builder {
- private OrganizationDto organization;
private QProfileDto profile;
private String query;
private String membership;
@@ -88,11 +80,6 @@ public class SearchUsersQuery {
private Builder() {
}
- public Builder setOrganization(OrganizationDto organization) {
- this.organization = organization;
- return this;
- }
-
public Builder setProfile(QProfileDto profile) {
this.profile = profile;
return this;
@@ -115,7 +102,6 @@ public class SearchUsersQuery {
}
public SearchUsersQuery build() {
- requireNonNull(organization, "Organization cannot be null");
requireNonNull(profile, "Quality profile cant be null.");
initMembership();
return new SearchUsersQuery(this);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java
index 419f4485eeb..dc449fb528b 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java
@@ -24,7 +24,6 @@ import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.function.Consumer;
-import javax.annotation.Nullable;
import org.apache.ibatis.session.ResultHandler;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rules.RuleQuery;
@@ -32,8 +31,6 @@ import org.sonar.core.util.UuidFactory;
import org.sonar.db.Dao;
import org.sonar.db.DbSession;
import org.sonar.db.RowNotFoundException;
-import org.sonar.db.es.RuleExtensionId;
-import org.sonar.db.organization.OrganizationDto;
import static com.google.common.base.Preconditions.checkNotNull;
import static java.util.Collections.emptyList;
@@ -50,31 +47,24 @@ public class RuleDao implements Dao {
this.uuidFactory = uuidFactory;
}
- public Optional<RuleDto> selectByKey(DbSession session, String organizationUuid, RuleKey key) {
- RuleDto res = mapper(session).selectByKey(organizationUuid, key);
- ensureOrganizationIsSet(organizationUuid, res);
+ public Optional<RuleDto> selectByKey(DbSession session, RuleKey key) {
+ RuleDto res = mapper(session).selectByKey(key);
return ofNullable(res);
}
- public RuleDto selectOrFailByKey(DbSession session, RuleKey key) {
- RuleDefinitionDto ruleDefinitionDto = selectOrFailDefinitionByKey(session, key);
- return new RuleDto(ruleDefinitionDto, new RuleMetadataDto());
- }
-
public Optional<RuleDefinitionDto> selectDefinitionByKey(DbSession session, RuleKey key) {
return ofNullable(mapper(session).selectDefinitionByKey(key));
}
- public Optional<RuleMetadataDto> selectMetadataByKey(DbSession session, RuleKey key, String organizationUuid) {
- return ofNullable(mapper(session).selectMetadataByKey(key, organizationUuid));
+ public Optional<RuleMetadataDto> selectMetadataByKey(DbSession session, RuleKey key) {
+ return ofNullable(mapper(session).selectMetadataByKey(key));
}
- public RuleDto selectOrFailByKey(DbSession session, OrganizationDto organization, RuleKey key) {
- RuleDto rule = mapper(session).selectByKey(organization.getUuid(), key);
+ public RuleDto selectOrFailByKey(DbSession session, RuleKey key) {
+ RuleDto rule = mapper(session).selectByKey(key);
if (rule == null) {
throw new RowNotFoundException(String.format("Rule with key '%s' does not exist", key));
}
- ensureOrganizationIsSet(organization.getUuid(), rule);
return rule;
}
@@ -86,9 +76,8 @@ public class RuleDao implements Dao {
return rule;
}
- public Optional<RuleDto> selectByUuid(String uuid, String organizationUuid, DbSession session) {
- RuleDto res = mapper(session).selectByUuid(organizationUuid, uuid);
- ensureOrganizationIsSet(organizationUuid, res);
+ public Optional<RuleDto> selectByUuid(String uuid, DbSession session) {
+ RuleDto res = mapper(session).selectByUuid(uuid);
return ofNullable(res);
}
@@ -96,13 +85,11 @@ public class RuleDao implements Dao {
return ofNullable(mapper(session).selectDefinitionByUuid(uuid));
}
- public List<RuleDto> selectByUuids(DbSession session, String organizationUuid, List<String> uuids) {
+ public List<RuleDto> selectByUuids(DbSession session, List<String> uuids) {
if (uuids.isEmpty()) {
return emptyList();
}
- return ensureOrganizationIsSet(
- organizationUuid,
- executeLargeInputs(uuids, chunk -> mapper(session).selectByUuids(organizationUuid, chunk)));
+ return executeLargeInputs(uuids, chunk -> mapper(session).selectByUuids(chunk));
}
public List<RuleDefinitionDto> selectDefinitionByUuids(DbSession session, Collection<String> uuids) {
@@ -112,20 +99,11 @@ public class RuleDao implements Dao {
return executeLargeInputs(uuids, mapper(session)::selectDefinitionByUuids);
}
- public List<RuleDto> selectByKeys(DbSession session, OrganizationDto organization, Collection<RuleKey> keys) {
- if (keys.isEmpty()) {
- return emptyList();
- }
- return ensureOrganizationIsSet(organization.getUuid(),
- executeLargeInputs(keys, chunk -> mapper(session).selectByKeys(organization.getUuid(), chunk)));
- }
-
- public List<RuleDto> selectByKeys(DbSession session, String organizationUuid, Collection<RuleKey> keys) {
+ public List<RuleDto> selectByKeys(DbSession session, Collection<RuleKey> keys) {
if (keys.isEmpty()) {
return emptyList();
}
- return ensureOrganizationIsSet(organizationUuid,
- executeLargeInputs(keys, chunk -> mapper(session).selectByKeys(organizationUuid, chunk)));
+ return executeLargeInputs(keys, chunk -> mapper(session).selectByKeys(chunk));
}
public List<RuleDefinitionDto> selectDefinitionByKeys(DbSession session, Collection<RuleKey> keys) {
@@ -139,32 +117,20 @@ public class RuleDao implements Dao {
mapper(session).selectEnabled(resultHandler);
}
- public List<RuleDto> selectAll(DbSession session, String organizationUuid) {
- return ensureOrganizationIsSet(organizationUuid, mapper(session).selectAll(organizationUuid));
+ public List<RuleDto> selectAll(DbSession session) {
+ return mapper(session).selectAll();
}
public List<RuleDefinitionDto> selectAllDefinitions(DbSession session) {
return mapper(session).selectAllDefinitions();
}
- public List<RuleDto> selectByTypeAndLanguages(DbSession session, String organizationUuid, List<Integer> types, List<String> languages) {
- return ensureOrganizationIsSet(organizationUuid,
- executeLargeInputs(languages, chunk -> mapper(session).selectByTypeAndLanguages(organizationUuid, types, chunk)));
+ public List<RuleDto> selectByTypeAndLanguages(DbSession session, List<Integer> types, List<String> languages) {
+ return executeLargeInputs(languages, chunk -> mapper(session).selectByTypeAndLanguages(types, chunk));
}
- public List<RuleDto> selectByQuery(DbSession session, String organizationUuid, RuleQuery ruleQuery) {
- return ensureOrganizationIsSet(organizationUuid, mapper(session).selectByQuery(organizationUuid, ruleQuery));
- }
-
- private static void ensureOrganizationIsSet(String organizationUuid, @Nullable RuleDto res) {
- if (res != null) {
- res.setOrganizationUuid(organizationUuid);
- }
- }
-
- private static List<RuleDto> ensureOrganizationIsSet(String organizationUuid, List<RuleDto> res) {
- res.forEach(dto -> ensureOrganizationIsSet(organizationUuid, dto));
- return res;
+ public List<RuleDto> selectByQuery(DbSession session, RuleQuery ruleQuery) {
+ return mapper(session).selectByQuery(ruleQuery);
}
public void insert(DbSession session, RuleDefinitionDto dto) {
@@ -189,7 +155,7 @@ public class RuleDao implements Dao {
}
}
- public void scrollIndexingRuleExtensionsByIds(DbSession dbSession, Collection<RuleExtensionId> ruleExtensionIds, Consumer<RuleExtensionForIndexingDto> consumer) {
+ public void scrollIndexingRuleExtensionsByIds(DbSession dbSession, Collection<String> ruleExtensionIds, Consumer<RuleExtensionForIndexingDto> consumer) {
RuleMapper mapper = mapper(dbSession);
executeLargeInputsWithoutOutput(ruleExtensionIds,
@@ -198,13 +164,6 @@ public class RuleDao implements Dao {
.forEach(consumer));
}
- public void scrollIndexingRuleExtensions(DbSession dbSession, Consumer<RuleExtensionForIndexingDto> consumer) {
- mapper(dbSession).scrollIndexingRuleExtensions(context -> {
- RuleExtensionForIndexingDto dto = context.getResultObject();
- consumer.accept(dto);
- });
- }
-
public void scrollIndexingRulesByKeys(DbSession dbSession, Collection<String> ruleUuids, Consumer<RuleForIndexingDto> consumer) {
RuleMapper mapper = mapper(dbSession);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDefinitionDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDefinitionDto.java
index ad96e58961e..9ca00aed2a0 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDefinitionDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDefinitionDto.java
@@ -104,12 +104,12 @@ public class RuleDefinitionDto {
return deserializeStringSet(securityStandards);
}
- private static Set<String> deserializeStringSet(@Nullable String securityStandards) {
- if (securityStandards == null || securityStandards.isEmpty()) {
+ private static Set<String> deserializeStringSet(@Nullable String str) {
+ if (str == null || str.isEmpty()) {
return ImmutableSet.of();
}
- return ImmutableSet.copyOf(SPLITTER.split(securityStandards));
+ return ImmutableSet.copyOf(SPLITTER.split(str));
}
private static String serializeStringSet(@Nullable Set<String> strings) {
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDto.java
index cae2d18cade..e7c6f001880 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDto.java
@@ -408,15 +408,6 @@ public class RuleDto {
}
}
- public String getOrganizationUuid() {
- return metadata.getOrganizationUuid();
- }
-
- public RuleDto setOrganizationUuid(String organizationUuid) {
- metadata.setOrganizationUuid(organizationUuid);
- return this;
- }
-
@CheckForNull
public String getNoteData() {
return metadata.getNoteData();
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleExtensionForIndexingDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleExtensionForIndexingDto.java
index bc82e93c302..94cd764fbe0 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleExtensionForIndexingDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleExtensionForIndexingDto.java
@@ -31,7 +31,6 @@ public class RuleExtensionForIndexingDto {
private String ruleUuid;
private String pluginName;
private String pluginRuleKey;
- private String organizationUuid;
private String tags;
public String getPluginName() {
@@ -60,15 +59,6 @@ public class RuleExtensionForIndexingDto {
this.ruleUuid = ruleUuid;
}
- public String getOrganizationUuid() {
- return organizationUuid;
- }
-
- public RuleExtensionForIndexingDto setOrganizationUuid(String organizationUuid) {
- this.organizationUuid = organizationUuid;
- return this;
- }
-
public String getTags() {
return tags;
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleForIndexingDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleForIndexingDto.java
index 046a4e5c333..9d71294e0d1 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleForIndexingDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleForIndexingDto.java
@@ -37,6 +37,7 @@ public class RuleForIndexingDto {
private RuleStatus status;
private boolean isTemplate;
private String systemTags;
+ private String tags;
private String securityStandards;
private String templateRuleKey;
private String templateRepository;
@@ -91,6 +92,10 @@ public class RuleForIndexingDto {
return RuleDefinitionDto.deserializeTagsString(systemTags);
}
+ public Set<String> getTags() {
+ return RuleDefinitionDto.deserializeTagsString(tags);
+ }
+
public Set<String> getSecurityStandards() {
return RuleDefinitionDto.deserializeSecurityStandardsString(securityStandards);
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleMapper.java
index debac92c73d..8dae814bd25 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleMapper.java
@@ -25,31 +25,30 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.ResultHandler;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rules.RuleQuery;
-import org.sonar.db.es.RuleExtensionId;
public interface RuleMapper {
- List<RuleDto> selectAll(@Param("organizationUuid") String organizationUuid);
+ List<RuleDto> selectAll();
List<RuleDefinitionDto> selectAllDefinitions();
void selectEnabled(ResultHandler<RuleDefinitionDto> resultHandler);
- RuleDto selectByUuid(@Param("organizationUuid") String organizationUuid, @Param("uuid") String uuid);
+ RuleDto selectByUuid(@Param("uuid") String uuid);
RuleDefinitionDto selectDefinitionByUuid(String uuid);
- List<RuleDto> selectByUuids(@Param("organizationUuid") String organizationUuid, @Param("uuids") List<String> uuids);
+ List<RuleDto> selectByUuids(@Param("uuids") List<String> uuids);
List<RuleDefinitionDto> selectDefinitionByUuids(@Param("uuids") List<String> uuids);
- RuleDto selectByKey(@Param("organizationUuid") String organizationUuid, @Param("ruleKey") RuleKey ruleKey);
+ RuleDto selectByKey(@Param("ruleKey") RuleKey ruleKey);
RuleDefinitionDto selectDefinitionByKey(RuleKey ruleKey);
- RuleMetadataDto selectMetadataByKey(@Param("ruleKey") RuleKey ruleKey, @Param("organizationUuid") String organizationUuid);
+ RuleMetadataDto selectMetadataByKey(@Param("ruleKey") RuleKey ruleKey);
- List<RuleDto> selectByKeys(@Param("organizationUuid") String organizationUuid, @Param("ruleKeys") List<RuleKey> keys);
+ List<RuleDto> selectByKeys(@Param("ruleKeys") List<RuleKey> keys);
List<RuleDefinitionDto> selectDefinitionByKeys(@Param("ruleKeys") List<RuleKey> keys);
@@ -57,13 +56,11 @@ public interface RuleMapper {
List<RuleForIndexingDto> selectIndexingRulesByUuids(@Param("ruleUuids") List<String> ruleUuids);
- void scrollIndexingRuleExtensions(ResultHandler<RuleExtensionForIndexingDto> handler);
+ List<RuleExtensionForIndexingDto> selectIndexingRuleExtensionsByIds(@Param("ruleExtensionIds") List<String> ruleExtensionIds);
- List<RuleExtensionForIndexingDto> selectIndexingRuleExtensionsByIds(@Param("ruleExtensionIds") List<RuleExtensionId> ruleExtensionIds);
+ List<RuleDto> selectByQuery(@Param("query") RuleQuery ruleQuery);
- List<RuleDto> selectByQuery(@Param("organizationUuid") String organizationUuid, @Param("query") RuleQuery ruleQuery);
-
- List<RuleDto> selectByTypeAndLanguages(@Param("organizationUuid") String organizationUuid, @Param("types") List<Integer> types, @Param("languages") List<String> languages);
+ List<RuleDto> selectByTypeAndLanguages(@Param("types") List<Integer> types, @Param("languages") List<String> languages);
void insertDefinition(RuleDefinitionDto ruleDefinitionDto);
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleMetadataDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleMetadataDto.java
index 168305cc358..dc617049225 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleMetadataDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleMetadataDto.java
@@ -32,7 +32,6 @@ import static com.google.common.base.Preconditions.checkArgument;
public class RuleMetadataDto {
private String ruleUuid;
- private String organizationUuid;
private String noteData;
private String noteUserUuid;
private Long noteCreatedAt;
@@ -81,15 +80,6 @@ public class RuleMetadataDto {
return this;
}
- public String getOrganizationUuid() {
- return organizationUuid;
- }
-
- public RuleMetadataDto setOrganizationUuid(String organizationUuid) {
- this.organizationUuid = organizationUuid;
- return this;
- }
-
@CheckForNull
public String getNoteData() {
return noteData;
@@ -250,7 +240,6 @@ public class RuleMetadataDto {
public String toString() {
return "RuleMetadataDto{" +
"ruleUuid=" + ruleUuid +
- ", organizationUuid='" + organizationUuid + '\'' +
", noteData='" + noteData + '\'' +
", noteUserUuid='" + noteUserUuid + '\'' +
", noteCreatedAt=" + noteCreatedAt +
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/ActiveRuleMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/ActiveRuleMapper.xml
index 3a88ac5f287..8872334858d 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/ActiveRuleMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/ActiveRuleMapper.xml
@@ -28,7 +28,6 @@
rp.uuid as "ruleProfileUuid",
a.created_at as "createdAt",
a.updated_at as "updatedAt",
- oqp.organization_uuid as "organizationUuid",
oqp.uuid as "orgProfileUuid"
</sql>
@@ -157,7 +156,7 @@
and rp.uuid in <foreach collection="ruleProfileUuids" item="ruleProfileUuid" separator="," open="(" close=")">#{ruleProfileUuid, jdbcType=VARCHAR}</foreach>
</select>
- <select id="selectByRuleUuid" parameterType="map" resultType="org.sonar.db.qualityprofile.OrgActiveRuleDto">
+ <select id="selectOrgByRuleUuid" parameterType="map" resultType="org.sonar.db.qualityprofile.OrgActiveRuleDto">
select
<include refid="orgActiveRuleColumns"/>
from active_rules a
@@ -166,10 +165,9 @@
inner join rules r on r.uuid = a.rule_uuid
where
a.rule_uuid = #{ruleUuid, jdbcType=VARCHAR}
- and oqp.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
</select>
- <select id="selectByRuleUuidOfAllOrganizations" parameterType="String" resultType="ActiveRule">
+ <select id="selectByRuleUuid" parameterType="String" resultType="ActiveRule">
select
<include refid="activeRuleColumns"/>
from active_rules a
@@ -190,7 +188,6 @@
<foreach collection="ruleUuids" item="ruleUuid" separator="," open="(" close=")">
#{ruleUuid, jdbcType=VARCHAR}
</foreach>
- and oqp.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
</select>
<!-- Parameters -->
@@ -280,8 +277,7 @@
inner join org_qprofiles oqp on oqp.rules_profile_uuid = rp.uuid
inner join rules r on r.uuid = ar.rule_uuid
<where>
- oqp.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
- and <foreach collection="profileUuids" item="profileUuid" open="(" separator=" or " close=")">
+ <foreach collection="profileUuids" item="profileUuid" open="(" separator=" or " close=")">
oqp.uuid = #{profileUuid, jdbcType=VARCHAR}
</foreach>
<choose>
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/DefaultQProfileMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/DefaultQProfileMapper.xml
index 81c5b96fef7..93063cbe1a9 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/DefaultQProfileMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/DefaultQProfileMapper.xml
@@ -6,13 +6,11 @@
<insert id="insert" useGeneratedKeys="false" parameterType="map">
insert into default_qprofiles
(
- organization_uuid,
language,
qprofile_uuid,
created_at,
updated_at
) values (
- #{dto.organizationUuid, jdbcType=VARCHAR},
#{dto.language, jdbcType=VARCHAR},
#{dto.qProfileUuid, jdbcType=VARCHAR},
#{now, jdbcType=BIGINT},
@@ -26,8 +24,7 @@
qprofile_uuid = #{dto.qProfileUuid, jdbcType=VARCHAR},
updated_at = #{now, jdbcType=BIGINT}
where
- organization_uuid = #{dto.organizationUuid, jdbcType=VARCHAR}
- and language = #{dto.language, jdbcType=VARCHAR}
+ language = #{dto.language, jdbcType=VARCHAR}
</update>
<delete id="deleteByQProfileUuids" parameterType="String">
@@ -42,17 +39,14 @@
select qprofile_uuid
from default_qprofiles
where
- organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
- and qprofile_uuid in
+ qprofile_uuid in
<foreach collection="qProfileUuids" open="(" close=")" item="qProfileUuid" separator=",">
#{qProfileUuid, jdbcType=VARCHAR}
</foreach>
</select>
- <select id="selectUuidsOfOrganizationsWithoutDefaultProfile" parameterType="String" resultType="String">
- select uuid from organizations
- where not exists
- (select 1 from default_qprofiles dqp where dqp.organization_uuid = uuid and dqp.language = #{language, jdbcType=VARCHAR})
+ <select id="selectDefaultQProfileUuid" parameterType="String" resultType="String">
+ select qprofile_uuid from default_qprofiles where language = #{language, jdbcType=VARCHAR}
</select>
</mapper>
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QProfileEditGroupsMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QProfileEditGroupsMapper.xml
index ccd81869b94..7539227c211 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QProfileEditGroupsMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QProfileEditGroupsMapper.xml
@@ -60,7 +60,6 @@
FROM groups g
LEFT JOIN qprofile_edit_groups qeg ON qeg.group_uuid=g.uuid AND qeg.qprofile_uuid=#{query.qProfileUuid, jdbcType=VARCHAR}
<where>
- AND g.organization_uuid=#{query.organizationUuid,jdbcType=VARCHAR}
<choose>
<when test="query.getMembership() == 'IN'">
AND qeg.uuid IS NOT NULL
@@ -75,10 +74,9 @@
</where>
</sql>
- <select id="selectQProfileUuidsByOrganizationAndGroups" parameterType="map" resultType="string">
+ <select id="selectQProfileUuidsByGroups" parameterType="map" resultType="string">
select distinct qeg.qprofile_uuid as qProfileUuid
from qprofile_edit_groups qeg
- inner join org_qprofiles oq on qeg.qprofile_uuid=oq.uuid and oq.organization_uuid=#{organizationUuid, jdbcType=VARCHAR}
<where>
qeg.group_uuid in <foreach collection="groupUuids" open="(" close=")" item="groupUuid" separator=",">#{groupUuid, jdbcType=VARCHAR}</foreach>
</where>
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QProfileEditUsersMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QProfileEditUsersMapper.xml
index ae20212efcd..67daf154734 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QProfileEditUsersMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QProfileEditUsersMapper.xml
@@ -57,7 +57,6 @@
<sql id="sqlSelectByQuery">
FROM users u
LEFT JOIN qprofile_edit_users qeu ON qeu.user_uuid=u.uuid AND qeu.qprofile_uuid=#{query.qProfileUuid, jdbcType=VARCHAR}
- INNER JOIN organization_members om ON u.uuid=om.user_uuid AND om.organization_uuid=#{query.organizationUuid, jdbcType=VARCHAR}
<where>
<choose>
<when test="query.getMembership() == 'IN'">
@@ -76,10 +75,9 @@
</where>
</sql>
- <select id="selectQProfileUuidsByOrganizationAndUser" parameterType="map" resultType="string">
+ <select id="selectQProfileUuidsByUser" parameterType="map" resultType="string">
SELECT qeu.qprofile_uuid as qProfileUuid
FROM qprofile_edit_users qeu
- INNER JOIN org_qprofiles oq ON qeu.qprofile_uuid=oq.uuid AND oq.organization_uuid=#{organizationUuid, jdbcType=VARCHAR}
<where>
qeu.user_uuid=#{userUuid, jdbcType=VARCHAR}
</where>
@@ -115,17 +113,5 @@
where user_uuid = #{userUuid, jdbcType=VARCHAR}
</delete>
- <delete id="deleteByOrganizationAndUser" parameterType="map">
- delete from qprofile_edit_users
- <where>
- user_uuid=#{userUuid, jdbcType=VARCHAR}
- and qprofile_uuid in (
- select oq.uuid
- from org_qprofiles oq
- where oq.organization_uuid=#{organizationUuid, jdbcType=VARCHAR}
- )
- </where>
- </delete>
-
</mapper>
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QualityProfileMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QualityProfileMapper.xml
index 9856551d7ba..31c61544ed1 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QualityProfileMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/qualityprofile/QualityProfileMapper.xml
@@ -5,7 +5,6 @@
<sql id="qProfileColumns">
oqp.uuid as kee,
- oqp.organization_uuid as organizationUuid,
oqp.parent_uuid as parentKee,
oqp.last_used as lastUsed,
oqp.user_updated_at as userUpdatedAt,
@@ -47,7 +46,6 @@
<insert id="insertOrgQProfile" parameterType="map" useGeneratedKeys="false">
insert into org_qprofiles (
uuid,
- organization_uuid,
rules_profile_uuid,
parent_uuid,
last_used,
@@ -56,7 +54,6 @@
updated_at
) values (
#{dto.uuid, jdbcType=VARCHAR},
- #{dto.organizationUuid, jdbcType=VARCHAR},
#{dto.rulesProfileUuid, jdbcType=VARCHAR},
#{dto.parentUuid, jdbcType=VARCHAR},
#{dto.lastUsed, jdbcType=BIGINT},
@@ -123,13 +120,11 @@
where rp.uuid = #{uuid, jdbcType=VARCHAR}
</select>
- <select id="selectOrderedByOrganizationUuid" parameterType="map" resultType="org.sonar.db.qualityprofile.QProfileDto">
+ <select id="selectAll" resultType="org.sonar.db.qualityprofile.QProfileDto">
select
<include refid="qProfileColumns"/>
from org_qprofiles oqp
inner join rules_profiles rp on oqp.rules_profile_uuid = rp.uuid
- where
- oqp.organization_uuid = #{organizationUuid,jdbcType=VARCHAR}
order by rp.name, rp.language
</select>
@@ -141,9 +136,7 @@
inner join default_qprofiles dp on dp.qprofile_uuid = oqp.uuid
where
dp.language = #{language, jdbcType=VARCHAR}
- and dp.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
and rp.language = dp.language
- and oqp.organization_uuid = dp.organization_uuid
</select>
<select id="selectDefaultBuiltInProfilesWithoutActiveRules" parameterType="map" resultType="org.sonar.db.qualityprofile.QProfileDto">
@@ -170,9 +163,7 @@
inner join default_qprofiles dp on dp.qprofile_uuid = oqp.uuid
where
dp.language in <foreach collection="languages" open="(" close=")" item="language" separator=",">#{language, jdbcType=VARCHAR}</foreach>
- and dp.organization_uuid = oqp.organization_uuid
and rp.language = dp.language
- and oqp.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
</select>
<select id="selectBuiltInRuleProfilesWithActiveRules" resultType="org.sonar.db.qualityprofile.RulesProfileDto">
@@ -194,7 +185,6 @@
where
rp.name = #{name, jdbcType=VARCHAR}
and rp.language = #{language, jdbcType=VARCHAR}
- and oqp.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
</select>
<select id="selectByRuleProfileUuid" parameterType="map" resultType="org.sonar.db.qualityprofile.QProfileDto">
@@ -204,7 +194,6 @@
inner join rules_profiles rp on oqp.rules_profile_uuid = rp.uuid
where
rp.uuid = #{ruleProfileUuid, jdbcType=VARCHAR}
- and oqp.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
</select>
<select id="selectByNameAndLanguages" parameterType="map" resultType="org.sonar.db.qualityprofile.QProfileDto">
@@ -215,7 +204,6 @@
where
rp.name = #{name, jdbcType=VARCHAR}
and rp.language in <foreach collection="languages" open="(" close=")" item="language" separator=",">#{language, jdbcType=VARCHAR}</foreach>
- and oqp.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
</select>
<select id="selectByUuid" parameterType="string" resultType="org.sonar.db.qualityprofile.QProfileDto">
@@ -243,7 +231,6 @@
inner join rules_profiles rp on oqp.rules_profile_uuid = rp.uuid
where
rp.language = #{language, jdbcType=VARCHAR}
- and oqp.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
</select>
<!-- the join on "org_qprofiles parent" is required to benefit from the index on uuid -->
@@ -257,15 +244,13 @@
order by rp.name
</select>
- <select id="countProjectsByOrganizationAndProfiles" resultType="KeyLongValue" parameterType="map">
+ <select id="countProjectsByProfiles" resultType="KeyLongValue" parameterType="map">
select pqp.profile_key as "key", count(pj.uuid) as "value"
from components pj
inner join project_qprofiles pqp on pqp.project_uuid = pj.uuid
inner join org_qprofiles oqp on oqp.uuid = pqp.profile_key
where
pj.enabled = ${_true}
- and pj.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
- and oqp.organization_uuid = pj.organization_uuid
and <foreach collection="profileUuids" item="profileUuid" open="(" separator=" or " close=")">
oqp.uuid = #{profileUuid, jdbcType=VARCHAR}
</foreach>
@@ -281,7 +266,6 @@
where
rp.language = #{language, jdbcType=VARCHAR}
and pqp.project_uuid = #{projectUuid, jdbcType=VARCHAR}
- and oqp.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
</select>
<select id="selectAssociatedToProjectUuidAndLanguages" parameterType="map" resultType="org.sonar.db.qualityprofile.QProfileDto">
@@ -293,7 +277,6 @@
where
rp.language in <foreach collection="languages" open="(" close=")" item="language" separator=",">#{language, jdbcType=VARCHAR}</foreach>
and pqp.project_uuid = #{projectUuid, jdbcType=VARCHAR}
- and oqp.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
</select>
<insert id="insertProjectProfileAssociation" useGeneratedKeys="false">
@@ -345,7 +328,6 @@
and pj.qualifier = 'TRK'
and pj.main_branch_project_uuid is null
and upper(pj.name) like #{nameQuery, jdbcType=VARCHAR}
- and pj.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
order by pj.name ASC
</select>
@@ -357,7 +339,6 @@
WHERE pj.scope='PRJ' AND pj.qualifier='TRK' AND pj.main_branch_project_uuid is null
AND UPPER(pj.name) LIKE #{nameQuery, jdbcType=VARCHAR}
AND pp.profile_key IS NULL
- AND pj.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
ORDER BY pj.name ASC
</select>
@@ -368,14 +349,12 @@
AND pp.profile_key = #{profileUuid, jdbcType=VARCHAR}
WHERE pj.scope='PRJ' AND pj.qualifier='TRK' AND pj.main_branch_project_uuid is null
AND UPPER(pj.name) LIKE #{nameQuery, jdbcType=VARCHAR}
- AND pj.organization_uuid = #{organizationUuid, jdbcType=VARCHAR}
ORDER BY pj.name ASC
</select>
<select id="selectUuidsOfCustomRuleProfiles" parameterType="map" resultType="string">
select oqp.rules_profile_uuid
from org_qprofiles oqp
- inner join organizations o on o.uuid = oqp.organization_uuid
inner join rules_profiles rp on rp.uuid = oqp.rules_profile_uuid
where
rp.language = #{language, jdbcType=VARCHAR}
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml
index c05c5bd0a6b..e8967deffaa 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml
@@ -58,7 +58,6 @@
<sql id="outerJoinRulesMetadata">
left outer join rules_metadata rm on
rm.rule_uuid = r.uuid
- and rm.organization_uuid = #{organizationUuid,jdbcType=VARCHAR}
</sql>
<select id="selectAll" resultType="Rule">
@@ -152,21 +151,15 @@
<include refid="sqlSelectIndexingRuleExtensions" />
and
<foreach collection="ruleExtensionIds" index="index" item="ruleExtId" open="" separator=" or " close="">
- ( r.uuid = #{ruleExtId.ruleUuid, jdbcType=VARCHAR} and
- rm.organization_uuid = #{ruleExtId.organizationUuid, jdbcType=VARCHAR} )
+ ( r.uuid = #{ruleExtId, jdbcType=VARCHAR} )
</foreach>
</select>
- <select id="scrollIndexingRuleExtensions" resultType="org.sonar.db.rule.RuleExtensionForIndexingDto" fetchSize="${_scrollFetchSize}" resultSetType="FORWARD_ONLY">
- <include refid="sqlSelectIndexingRuleExtensions" />
- </select>
-
<sql id="sqlSelectIndexingRuleExtensions">
select
r.uuid as "ruleUuid",
r.plugin_name as "pluginName",
r.plugin_rule_key as "pluginRuleKey",
- rm.organization_uuid as "organizationUuid",
rm.tags as "tags"
from rules r
inner join rules_metadata rm on rm.rule_uuid = r.uuid
@@ -180,7 +173,6 @@
r.uuid as "ruleUuid",
r.plugin_name as "pluginName",
r.plugin_rule_key as "pluginRuleKey",
- rm.organization_uuid as "organizationUuid",
rm.tags as "tags"
from rules r
inner join rules_metadata rm on rm.rule_uuid = r.uuid
@@ -191,7 +183,6 @@
<select id="selectMetadataByKey" parameterType="map" resultType="org.sonar.db.rule.RuleMetadataDto">
select
rm.rule_uuid as "ruleUuid",
- rm.organization_uuid as "organizationUuid",
rm.note_data as "noteData",
rm.note_user_uuid as "noteUserUuid",
rm.note_created_at as "noteCreatedAt",
@@ -212,7 +203,6 @@
where
r.plugin_name=#{ruleKey.repository,jdbcType=VARCHAR}
and r.plugin_rule_key=#{ruleKey.rule,jdbcType=VARCHAR}
- and rm.organization_uuid = #{organizationUuid,jdbcType=VARCHAR}
</select>
<select id="selectByKeys" parameterType="map" resultType="Rule">
@@ -272,9 +262,11 @@
r.language as "language",
r.rule_type as "type",
r.created_at as "createdAt",
- r.updated_at as "updatedAt"
+ r.updated_at as "updatedAt",
+ rm.tags as "tags"
from rules r
left outer join rules t on t.uuid = r.template_uuid
+ left outer join rules_metadata rm on r.uuid = rm.rule_uuid
</sql>
<select id="selectByQuery" parameterType="map" resultType="Rule">
@@ -403,13 +395,11 @@
rules_metadata rm
where
rm.rule_uuid=#{ruleUuid,jdbcType=VARCHAR}
- and rm.organization_uuid=#{organizationUuid,jdbcType=VARCHAR}
</select>
<insert id="insertMetadata" parameterType="org.sonar.db.rule.RuleMetadataDto">
insert into rules_metadata (
rule_uuid,
- organization_uuid,
note_data,
note_user_uuid,
note_created_at,
@@ -427,7 +417,6 @@
)
values (
#{ruleUuid,jdbcType=VARCHAR},
- #{organizationUuid,jdbcType=VARCHAR},
#{noteData,jdbcType=CLOB},
#{noteUserUuid,jdbcType=VARCHAR},
#{noteCreatedAt,jdbcType=BIGINT},
@@ -462,7 +451,6 @@
updated_at=#{updatedAt,jdbcType=BIGINT}
where
rule_uuid=#{ruleUuid,jdbcType=VARCHAR}
- and organization_uuid=#{organizationUuid,jdbcType=VARCHAR}
</update>
<delete id="deleteParams" parameterType="String">
diff --git a/server/sonar-db-dao/src/schema/schema-sq.ddl b/server/sonar-db-dao/src/schema/schema-sq.ddl
index ae5bb2b7ca8..6f54915f01d 100644
--- a/server/sonar-db-dao/src/schema/schema-sq.ddl
+++ b/server/sonar-db-dao/src/schema/schema-sq.ddl
@@ -219,13 +219,12 @@ CREATE INDEX "PROJECTS_ROOT_UUID" ON "COMPONENTS"("ROOT_UUID");
CREATE INDEX "PROJECTS_UUID" ON "COMPONENTS"("UUID");
CREATE TABLE "DEFAULT_QPROFILES"(
- "ORGANIZATION_UUID" VARCHAR(40) NOT NULL,
"LANGUAGE" VARCHAR(20) NOT NULL,
"QPROFILE_UUID" VARCHAR(255) NOT NULL,
"CREATED_AT" BIGINT NOT NULL,
"UPDATED_AT" BIGINT NOT NULL
);
-ALTER TABLE "DEFAULT_QPROFILES" ADD CONSTRAINT "PK_DEFAULT_QPROFILES" PRIMARY KEY("ORGANIZATION_UUID", "LANGUAGE");
+ALTER TABLE "DEFAULT_QPROFILES" ADD CONSTRAINT "PK_DEFAULT_QPROFILES" PRIMARY KEY("LANGUAGE");
CREATE UNIQUE INDEX "UNIQ_DEFAULT_QPROFILES_UUID" ON "DEFAULT_QPROFILES"("QPROFILE_UUID");
CREATE TABLE "DEPRECATED_RULE_KEYS"(
@@ -493,7 +492,6 @@ ALTER TABLE "NOTIFICATIONS" ADD CONSTRAINT "PK_NOTIFICATIONS" PRIMARY KEY("UUID"
CREATE TABLE "ORG_QPROFILES"(
"UUID" VARCHAR(255) NOT NULL,
- "ORGANIZATION_UUID" VARCHAR(40) NOT NULL,
"RULES_PROFILE_UUID" VARCHAR(255) NOT NULL,
"PARENT_UUID" VARCHAR(255),
"LAST_USED" BIGINT,
@@ -502,7 +500,6 @@ CREATE TABLE "ORG_QPROFILES"(
"UPDATED_AT" BIGINT NOT NULL
);
ALTER TABLE "ORG_QPROFILES" ADD CONSTRAINT "PK_ORG_QPROFILES" PRIMARY KEY("UUID");
-CREATE INDEX "QPROFILES_ORG_UUID" ON "ORG_QPROFILES"("ORGANIZATION_UUID");
CREATE INDEX "QPROFILES_RP_UUID" ON "ORG_QPROFILES"("RULES_PROFILE_UUID");
CREATE INDEX "ORG_QPROFILES_PARENT_UUID" ON "ORG_QPROFILES"("PARENT_UUID");
@@ -816,7 +813,6 @@ ALTER TABLE "RULES" ADD CONSTRAINT "PK_RULES" PRIMARY KEY("UUID");
CREATE UNIQUE INDEX "RULES_REPO_KEY" ON "RULES"("PLUGIN_RULE_KEY", "PLUGIN_NAME");
CREATE TABLE "RULES_METADATA"(
- "ORGANIZATION_UUID" VARCHAR(40) NOT NULL,
"NOTE_DATA" CLOB,
"NOTE_USER_UUID" VARCHAR(255),
"NOTE_CREATED_AT" BIGINT,
@@ -833,7 +829,7 @@ CREATE TABLE "RULES_METADATA"(
"UPDATED_AT" BIGINT NOT NULL,
"RULE_UUID" VARCHAR(40) NOT NULL
);
-ALTER TABLE "RULES_METADATA" ADD CONSTRAINT "PK_RULES_METADATA" PRIMARY KEY("RULE_UUID", "ORGANIZATION_UUID");
+ALTER TABLE "RULES_METADATA" ADD CONSTRAINT "PK_RULES_METADATA" PRIMARY KEY("RULE_UUID");
CREATE TABLE "RULES_PARAMETERS"(
"NAME" VARCHAR(128) NOT NULL,
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/permission/AuthorizationDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/permission/AuthorizationDaoTest.java
index db5e82f133c..a36bfefc37c 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/permission/AuthorizationDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/permission/AuthorizationDaoTest.java
@@ -245,16 +245,10 @@ public class AuthorizationDaoTest {
db.users().insertPermissionOnUser(organization, user3, ADMINISTER);
db.users().insertPermissionOnAnyone(organization, ADMINISTER);
- // other organizations are ignored
- OrganizationDto org2 = db.organizations().insert();
- db.users().insertPermissionOnUser(org2, user1, ADMINISTER);
-
assertThat(underTest.selectUserUuidsWithGlobalPermission(db.getSession(), organization.getUuid(), ADMINISTER.getKey()))
.containsExactlyInAnyOrder(user1.getUuid(), user2.getUuid(), user3.getUuid());
assertThat(underTest.selectUserUuidsWithGlobalPermission(db.getSession(), organization.getUuid(), PROVISION_PROJECTS.getKey()))
.containsExactlyInAnyOrder(user1.getUuid(), user2.getUuid());
- assertThat(underTest.selectUserUuidsWithGlobalPermission(db.getSession(), org2.getUuid(), ADMINISTER.getKey()))
- .containsExactlyInAnyOrder(user1.getUuid());
}
@Test
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/ActiveRuleDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/ActiveRuleDaoTest.java
index 0063c05752a..20ce6764f80 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/ActiveRuleDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/ActiveRuleDaoTest.java
@@ -35,7 +35,6 @@ import org.sonar.api.server.rule.RuleParamType;
import org.sonar.api.utils.System2;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleParamDto;
@@ -62,7 +61,6 @@ public class ActiveRuleDaoTest {
private static final long NOW = 10_000_000L;
- private OrganizationDto organization;
private QProfileDto profile1;
private QProfileDto profile2;
private RuleDefinitionDto rule1;
@@ -83,9 +81,8 @@ public class ActiveRuleDaoTest {
@Before
public void setUp() {
- organization = db.organizations().insert();
- profile1 = db.qualityProfiles().insert(organization);
- profile2 = db.qualityProfiles().insert(organization);
+ profile1 = db.qualityProfiles().insert();
+ profile2 = db.qualityProfiles().insert();
rule1 = db.rules().insert();
rule2 = db.rules().insert();
rule3 = db.rules().insert();
@@ -117,9 +114,9 @@ public class ActiveRuleDaoTest {
underTest.insert(dbSession, activeRule2);
dbSession.commit();
- assertThat(underTest.selectByRuleUuid(dbSession, organization, rule1.getUuid())).extracting("key")
+ assertThat(underTest.selectByOrgRuleUuid(dbSession, rule1.getUuid())).extracting("key")
.containsOnly(activeRule1.getKey(), activeRule2.getKey());
- assertThat(underTest.selectByRuleUuid(dbSession, organization, rule3.getUuid())).isEmpty();
+ assertThat(underTest.selectByOrgRuleUuid(dbSession, rule3.getUuid())).isEmpty();
}
@Test
@@ -132,9 +129,9 @@ public class ActiveRuleDaoTest {
underTest.insert(dbSession, activeRule3);
dbSession.commit();
- assertThat(underTest.selectByRuleUuids(dbSession, organization, singletonList(rule1.getUuid())))
+ assertThat(underTest.selectByRuleUuids(dbSession, singletonList(rule1.getUuid())))
.extracting("key").containsOnly(activeRule1.getKey(), activeRule3.getKey());
- assertThat(underTest.selectByRuleUuids(dbSession, organization, newArrayList(rule1.getUuid(), rule2.getUuid())))
+ assertThat(underTest.selectByRuleUuids(dbSession, newArrayList(rule1.getUuid(), rule2.getUuid())))
.extracting("key").containsOnly(activeRule1.getKey(), activeRule2.getKey(), activeRule3.getKey());
}
@@ -148,8 +145,8 @@ public class ActiveRuleDaoTest {
List<OrgActiveRuleDto> result = underTest.selectByProfile(dbSession, profile1);
assertThat(result)
.hasSize(2)
- .extracting(OrgActiveRuleDto::getOrganizationUuid, OrgActiveRuleDto::getOrgProfileUuid, OrgActiveRuleDto::getProfileUuid)
- .containsOnly(tuple(organization.getUuid(), profile1.getKee(), profile1.getRulesProfileUuid()));
+ .extracting(OrgActiveRuleDto::getOrgProfileUuid, OrgActiveRuleDto::getProfileUuid)
+ .containsOnly(tuple(profile1.getKee(), profile1.getRulesProfileUuid()));
assertThat(underTest.selectByProfile(dbSession, profile2)).isEmpty();
}
@@ -170,8 +167,8 @@ public class ActiveRuleDaoTest {
underTest.insert(dbSession, activeRule1);
assertThat(underTest.selectByTypeAndProfileUuids(dbSession, singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList(profile1.getKee())))
- .extracting(OrgActiveRuleDto::getOrgProfileUuid, OrgActiveRuleDto::getOrganizationUuid, OrgActiveRuleDto::getRuleUuid)
- .contains(tuple(profile1.getKee(), profile1.getOrganizationUuid(), rule1.getUuid()));
+ .extracting(OrgActiveRuleDto::getOrgProfileUuid, OrgActiveRuleDto::getRuleUuid)
+ .contains(tuple(profile1.getKee(), rule1.getUuid()));
}
@Test
@@ -196,8 +193,8 @@ public class ActiveRuleDaoTest {
underTest.selectByTypeAndProfileUuids(dbSession,
singletonList(RuleType.VULNERABILITY.getDbConstant()),
singletonList(profile1.getKee())))
- .extracting(OrgActiveRuleDto::getOrgProfileUuid, OrgActiveRuleDto::getOrganizationUuid, OrgActiveRuleDto::getRuleUuid)
- .contains(tuple(profile1.getKee(), profile1.getOrganizationUuid(), rule1.getUuid()));
+ .extracting(OrgActiveRuleDto::getOrgProfileUuid, OrgActiveRuleDto::getRuleUuid)
+ .contains(tuple(profile1.getKee(), rule1.getUuid()));
assertThat(
underTest.selectByTypeAndProfileUuids(dbSession,
@@ -579,7 +576,7 @@ public class ActiveRuleDaoTest {
List<String> activeRuleUuids = asList(activeRule1.getUuid(), activeRule2.getUuid());
assertThat(underTest.selectParamsByActiveRuleUuids(dbSession, activeRuleUuids)).hasSize(2);
- underTest.deleteParamsByRuleParamOfAllOrganizations(dbSession, rule1Param1);
+ underTest.deleteParamsByRuleParam(dbSession, rule1Param1);
assertThat(underTest.selectParamsByActiveRuleUuids(dbSession, activeRuleUuids)).isEmpty();
}
@@ -606,9 +603,9 @@ public class ActiveRuleDaoTest {
db.qualityProfiles().activateRule(profile1, rule2);
db.qualityProfiles().activateRule(profile1, removedRule);
db.qualityProfiles().activateRule(profile2, rule1);
- QProfileDto profileWithoutActiveRule = db.qualityProfiles().insert(organization);
+ QProfileDto profileWithoutActiveRule = db.qualityProfiles().insert();
- ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder().setOrganization(organization);
+ ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder();
assertThat(underTest.countActiveRulesByQuery(dbSession, builder.setProfiles(asList(profile1, profile2)).build()))
.containsOnly(entry(profile1.getKee(), 2L), entry(profile2.getKee(), 1L));
assertThat(underTest.countActiveRulesByQuery(dbSession, builder.setProfiles(singletonList(profileWithoutActiveRule)).build())).isEmpty();
@@ -628,7 +625,7 @@ public class ActiveRuleDaoTest {
db.qualityProfiles().activateRule(profile2, rule1);
db.qualityProfiles().activateRule(profile2, betaRule);
- ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder().setOrganization(organization);
+ ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder();
assertThat(underTest.countActiveRulesByQuery(dbSession, builder.setProfiles(asList(profile1, profile2)).setRuleStatus(BETA).build()))
.containsOnly(entry(profile1.getKee(), 1L), entry(profile2.getKee(), 1L));
assertThat(underTest.countActiveRulesByQuery(dbSession, builder.setProfiles(singletonList(profile1)).setRuleStatus(READY).build()))
@@ -645,7 +642,7 @@ public class ActiveRuleDaoTest {
db.qualityProfiles().activateRule(profile2, rule1, ar -> ar.setInheritance(OVERRIDES));
db.qualityProfiles().activateRule(profile2, rule2, ar -> ar.setInheritance(INHERITED));
- ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder().setOrganization(organization);
+ ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder();
assertThat(underTest.countActiveRulesByQuery(dbSession, builder.setProfiles(asList(profile1, profile2)).setInheritance(OVERRIDES).build()))
.containsOnly(entry(profile1.getKee(), 1L), entry(profile2.getKee(), 1L));
assertThat(underTest.countActiveRulesByQuery(dbSession, builder.setProfiles(asList(profile1, profile2)).setInheritance(INHERITED).build()))
@@ -653,18 +650,6 @@ public class ActiveRuleDaoTest {
}
@Test
- public void countActiveRulesByQuery_filter_by_organization() {
- db.qualityProfiles().activateRule(profile1, rule1);
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profileOnAnotherOrganization = db.qualityProfiles().insert(anotherOrganization);
- db.qualityProfiles().activateRule(profileOnAnotherOrganization, rule1);
-
- assertThat(underTest.countActiveRulesByQuery(dbSession,
- ActiveRuleCountQuery.builder().setOrganization(organization).setProfiles(asList(profile1, profileOnAnotherOrganization)).build()))
- .containsOnly(entry(profile1.getKee(), 1L));
- }
-
- @Test
public void scrollAllForIndexing_empty_table() {
Accumulator accumulator = new Accumulator();
underTest.scrollAllForIndexing(dbSession, accumulator);
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/DefaultQProfileDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/DefaultQProfileDaoTest.java
index b9b57430a6e..4d25b3b8c0c 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/DefaultQProfileDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/DefaultQProfileDaoTest.java
@@ -27,7 +27,6 @@ import org.sonar.api.utils.System2;
import org.sonar.core.util.Uuids;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
@@ -35,31 +34,28 @@ import static org.assertj.core.api.Assertions.assertThat;
public class DefaultQProfileDaoTest {
@Rule
- public DbTester dbTester = DbTester.create(System2.INSTANCE).setDisableDefaultOrganization(true);
+ public DbTester dbTester = DbTester.create(System2.INSTANCE);
private DbSession dbSession = dbTester.getSession();
private DefaultQProfileDao underTest = dbTester.getDbClient().defaultQProfileDao();
@Test
public void insertOrUpdate_inserts_row_when_does_not_exist() {
- OrganizationDto org = dbTester.organizations().insert();
- QProfileDto profile = dbTester.qualityProfiles().insert(org);
+ QProfileDto profile = dbTester.qualityProfiles().insert();
DefaultQProfileDto dto = DefaultQProfileDto.from(profile);
underTest.insertOrUpdate(dbSession, dto);
dbSession.commit();
assertThat(countRows()).isEqualTo(1);
- assertThatIsDefault(org, profile);
+ assertThatIsDefault(profile);
}
@Test
public void insertOrUpdate_updates_row_when_exists() {
- OrganizationDto org = dbTester.organizations().insert();
String previousQProfileUuid = Uuids.create();
DefaultQProfileDto dto = new DefaultQProfileDto()
.setLanguage("java")
- .setOrganizationUuid(org.getUuid())
.setQProfileUuid(previousQProfileUuid);
underTest.insertOrUpdate(dbSession, dto);
dbSession.commit();
@@ -70,79 +66,55 @@ public class DefaultQProfileDaoTest {
dbSession.commit();
assertThat(countRows()).isEqualTo(1);
- assertThat(selectUuidOfDefaultProfile(org, dto.getLanguage())).hasValue(newQProfileUuid);
+ assertThat(selectUuidOfDefaultProfile(dto.getLanguage())).hasValue(newQProfileUuid);
}
@Test
public void deleteByQProfileUuids_deletes_rows_related_to_specified_profile() {
- OrganizationDto org1 = dbTester.organizations().insert();
- OrganizationDto org2 = dbTester.organizations().insert();
- underTest.insertOrUpdate(dbSession, new DefaultQProfileDto().setOrganizationUuid(org1.getUuid()).setLanguage("java").setQProfileUuid("u1"));
- underTest.insertOrUpdate(dbSession, new DefaultQProfileDto().setOrganizationUuid(org1.getUuid()).setLanguage("js").setQProfileUuid("u2"));
- underTest.insertOrUpdate(dbSession, new DefaultQProfileDto().setOrganizationUuid(org2.getUuid()).setLanguage("java").setQProfileUuid("u3"));
- underTest.insertOrUpdate(dbSession, new DefaultQProfileDto().setOrganizationUuid(org2.getUuid()).setLanguage("js").setQProfileUuid("u4"));
+ underTest.insertOrUpdate(dbSession, new DefaultQProfileDto().setLanguage("java").setQProfileUuid("u1"));
+ underTest.insertOrUpdate(dbSession, new DefaultQProfileDto().setLanguage("js").setQProfileUuid("u2"));
underTest.deleteByQProfileUuids(dbSession, asList("u1", "u3"));
dbSession.commit();
- assertThat(countRows()).isEqualTo(2);
- assertThat(selectUuidOfDefaultProfile(org1, "java")).isEmpty();
- assertThat(selectUuidOfDefaultProfile(org1, "js")).hasValue("u2");
- assertThat(selectUuidOfDefaultProfile(org2, "java")).isEmpty();
- assertThat(selectUuidOfDefaultProfile(org2, "js")).hasValue("u4");
+ assertThat(countRows()).isEqualTo(1);
+ assertThat(selectUuidOfDefaultProfile("java")).isEmpty();
+ assertThat(selectUuidOfDefaultProfile("js")).hasValue("u2");
}
@Test
public void selectExistingQProfileUuids_filters_defaults() {
- OrganizationDto org = dbTester.organizations().insert();
- QProfileDto profile1 = dbTester.qualityProfiles().insert(org);
- QProfileDto profile2 = dbTester.qualityProfiles().insert(org);
+ QProfileDto profile1 = dbTester.qualityProfiles().insert();
+ QProfileDto profile2 = dbTester.qualityProfiles().insert();
dbTester.qualityProfiles().setAsDefault(profile1);
List<String> profileUuids = asList(profile1.getKee(), profile2.getKee(), "other");
- assertThat(underTest.selectExistingQProfileUuids(dbSession, org.getUuid(), profileUuids))
+ assertThat(underTest.selectExistingQProfileUuids(dbSession, profileUuids))
.containsExactly(profile1.getKee());
}
@Test
public void isDefault_returns_true_if_profile_is_marked_as_default() {
- OrganizationDto org = dbTester.organizations().insert();
- QProfileDto profile1 = dbTester.qualityProfiles().insert(org);
- QProfileDto profile2 = dbTester.qualityProfiles().insert(org);
+ QProfileDto profile1 = dbTester.qualityProfiles().insert();
+ QProfileDto profile2 = dbTester.qualityProfiles().insert();
dbTester.qualityProfiles().setAsDefault(profile1);
- assertThat(underTest.isDefault(dbSession, org.getUuid(), profile1.getKee())).isTrue();
- assertThat(underTest.isDefault(dbSession, org.getUuid(), profile2.getKee())).isFalse();
- assertThat(underTest.isDefault(dbSession, org.getUuid(), "does_not_exist")).isFalse();
- }
-
- @Test
- public void selectUuidsOfOrganizationsWithoutDefaultProfile() {
- OrganizationDto org1 = dbTester.organizations().insert();
- OrganizationDto org2 = dbTester.organizations().insert();
- QProfileDto profileInOrg1 = dbTester.qualityProfiles().insert(org1, p -> p.setLanguage("java"));
- QProfileDto profileInOrg2 = dbTester.qualityProfiles().insert(org2, p -> p.setLanguage("java"));
- dbTester.qualityProfiles().setAsDefault(profileInOrg1);
-
- assertThat(underTest.selectUuidsOfOrganizationsWithoutDefaultProfile(dbSession, "java"))
- .containsExactly(org2.getUuid());
- assertThat(underTest.selectUuidsOfOrganizationsWithoutDefaultProfile(dbSession, "js"))
- .containsExactlyInAnyOrder(org1.getUuid(), org2.getUuid());
+ assertThat(underTest.isDefault(dbSession, profile1.getKee())).isTrue();
+ assertThat(underTest.isDefault(dbSession, profile2.getKee())).isFalse();
+ assertThat(underTest.isDefault(dbSession, "does_not_exist")).isFalse();
}
- private void assertThatIsDefault(OrganizationDto org, QProfileDto profile) {
- assertThat(selectUuidOfDefaultProfile(org, profile.getLanguage())).hasValue(profile.getKee());
- assertThat(underTest.isDefault(dbSession, org.getUuid(), profile.getKee())).isTrue();
+ private void assertThatIsDefault(QProfileDto profile) {
+ assertThat(selectUuidOfDefaultProfile(profile.getLanguage())).hasValue(profile.getKee());
+ assertThat(underTest.isDefault(dbSession, profile.getKee())).isTrue();
}
private int countRows() {
return dbTester.countRowsOfTable("default_qprofiles");
}
- private Optional<String> selectUuidOfDefaultProfile(OrganizationDto org, String language) {
- return dbTester.select("select qprofile_uuid as \"profileUuid\" " +
- " from default_qprofiles " +
- " where organization_uuid='" + org.getUuid() + "' and language='" + language + "'")
+ private Optional<String> selectUuidOfDefaultProfile(String language) {
+ return dbTester.select("select qprofile_uuid as \"profileUuid\" from default_qprofiles where language='" + language + "'")
.stream()
.findFirst()
.map(m -> (String) m.get("profileUuid"));
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileChangeDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileChangeDaoTest.java
index a7595986b8d..18c9815f66c 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileChangeDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileChangeDaoTest.java
@@ -92,8 +92,8 @@ public class QProfileChangeDaoTest {
@Test
public void selectByQuery_returns_changes_ordered_by_descending_date() {
- QProfileDto profile1 = db.qualityProfiles().insert(db.getDefaultOrganization());
- QProfileDto profile2 = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile1 = db.qualityProfiles().insert();
+ QProfileDto profile2 = db.qualityProfiles().insert();
QProfileChangeDto change1OnP1 = insertChange(profile1, "ACTIVATED", null, null);
QProfileChangeDto change2OnP1 = insertChange(profile1, "ACTIVATED", null, null);
@@ -107,7 +107,7 @@ public class QProfileChangeDaoTest {
@Test
public void selectByQuery_supports_pagination_of_changes() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile = db.qualityProfiles().insert();
QProfileChangeDto change1 = insertChange(profile, "ACTIVATED", null, null);
QProfileChangeDto change2 = insertChange(profile, "ACTIVATED", null, null);
QProfileChangeDto change3 = insertChange(profile, "ACTIVATED", null, null);
@@ -124,7 +124,7 @@ public class QProfileChangeDaoTest {
@Test
public void selectByQuery_returns_changes_after_given_date() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile = db.qualityProfiles().insert();
QProfileChangeDto change1 = insertChange(profile, "ACTIVATED", null, null);
QProfileChangeDto change2 = insertChange(profile, "ACTIVATED", null, null);
QProfileChangeDto change3 = insertChange(profile, "ACTIVATED", null, null);
@@ -139,7 +139,7 @@ public class QProfileChangeDaoTest {
@Test
public void selectByQuery_returns_changes_before_given_date() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile = db.qualityProfiles().insert();
QProfileChangeDto change1 = insertChange(profile, "ACTIVATED", null, null);
QProfileChangeDto change2 = insertChange(profile, "ACTIVATED", null, null);
QProfileChangeDto change3 = insertChange(profile, "ACTIVATED", null, null);
@@ -154,7 +154,7 @@ public class QProfileChangeDaoTest {
@Test
public void selectByQuery_returns_changes_in_a_range_of_dates() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile = db.qualityProfiles().insert();
QProfileChangeDto change1 = insertChange(profile, "ACTIVATED", null, null);
QProfileChangeDto change2 = insertChange(profile, "ACTIVATED", null, null);
QProfileChangeDto change3 = insertChange(profile, "ACTIVATED", null, null);
@@ -171,7 +171,7 @@ public class QProfileChangeDaoTest {
@Test
public void test_selectByQuery_mapping() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile = db.qualityProfiles().insert();
QProfileChangeDto inserted = insertChange(profile, "ACTIVATED", "theLogin", "theData");
List<QProfileChangeDto> result = underTest.selectByQuery(dbSession, new QProfileChangeQuery(profile.getKee()));
@@ -188,8 +188,8 @@ public class QProfileChangeDaoTest {
@Test
public void countByQuery() {
- QProfileDto profile1 = db.qualityProfiles().insert(db.getDefaultOrganization());
- QProfileDto profile2 = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile1 = db.qualityProfiles().insert();
+ QProfileDto profile2 = db.qualityProfiles().insert();
long start = system2.now();
insertChange(profile1, "ACTIVATED", null, null);
insertChange(profile1, "ACTIVATED", null, null);
@@ -211,8 +211,8 @@ public class QProfileChangeDaoTest {
@Test
public void deleteByRulesProfileUuids() {
- QProfileDto profile1 = db.qualityProfiles().insert(db.getDefaultOrganization());
- QProfileDto profile2 = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile1 = db.qualityProfiles().insert();
+ QProfileDto profile2 = db.qualityProfiles().insert();
insertChange(profile1, "ACTIVATED", null, null);
insertChange(profile1, "ACTIVATED", null, null);
insertChange(profile2, "ACTIVATED", null, null);
@@ -225,7 +225,7 @@ public class QProfileChangeDaoTest {
@Test
public void deleteByProfileKeys_does_nothing_if_row_with_specified_key_does_not_exist() {
- QProfileDto profile1 = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile1 = db.qualityProfiles().insert();
insertChange(profile1.getRulesProfileUuid(), "ACTIVATED", null, null);
underTest.deleteByRulesProfileUuids(dbSession, asList("does not exist"));
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileEditGroupsDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileEditGroupsDaoTest.java
index 0ccd071dc06..efbc9bb80d9 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileEditGroupsDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileEditGroupsDaoTest.java
@@ -21,11 +21,10 @@ package org.sonar.db.qualityprofile;
import org.junit.Rule;
import org.junit.Test;
-import org.sonar.api.utils.System2;
import org.sonar.api.impl.utils.TestSystem2;
+import org.sonar.api.utils.System2;
import org.sonar.db.DbTester;
import org.sonar.db.Pagination;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.user.GroupDto;
import static java.util.Arrays.asList;
@@ -52,11 +51,10 @@ public class QProfileEditGroupsDaoTest {
@Test
public void exists() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
- QProfileDto anotherProfile = db.qualityProfiles().insert(organization);
- GroupDto group = db.users().insertGroup(organization);
- GroupDto anotherGroup = db.users().insertGroup(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
+ QProfileDto anotherProfile = db.qualityProfiles().insert();
+ GroupDto group = db.users().insertGroup();
+ GroupDto anotherGroup = db.users().insertGroup();
db.qualityProfiles().addGroupPermission(profile, group);
assertThat(underTest.exists(db.getSession(), profile, group)).isTrue();
@@ -70,28 +68,24 @@ public class QProfileEditGroupsDaoTest {
@Test
public void countByQuery() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
- GroupDto group1 = db.users().insertGroup(organization);
- GroupDto group2 = db.users().insertGroup(organization);
- GroupDto group3 = db.users().insertGroup(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
+ GroupDto group1 = db.users().insertGroup();
+ GroupDto group2 = db.users().insertGroup();
+ GroupDto group3 = db.users().insertGroup();
db.qualityProfiles().addGroupPermission(profile, group1);
db.qualityProfiles().addGroupPermission(profile, group2);
assertThat(underTest.countByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(ANY).build()))
.isEqualTo(3);
assertThat(underTest.countByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(IN).build()))
.isEqualTo(2);
assertThat(underTest.countByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(OUT).build()))
.isEqualTo(1);
@@ -99,16 +93,14 @@ public class QProfileEditGroupsDaoTest {
@Test
public void selectByQuery() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
- GroupDto group1 = db.users().insertGroup(organization);
- GroupDto group2 = db.users().insertGroup(organization);
- GroupDto group3 = db.users().insertGroup(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
+ GroupDto group1 = db.users().insertGroup();
+ GroupDto group2 = db.users().insertGroup();
+ GroupDto group3 = db.users().insertGroup();
db.qualityProfiles().addGroupPermission(profile, group1);
db.qualityProfiles().addGroupPermission(profile, group2);
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(ANY).build(), Pagination.all()))
.extracting(GroupMembershipDto::getGroupUuid, GroupMembershipDto::isSelected)
@@ -118,7 +110,6 @@ public class QProfileEditGroupsDaoTest {
tuple(group3.getUuid(), false));
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(IN).build(),
Pagination.all()))
@@ -126,7 +117,6 @@ public class QProfileEditGroupsDaoTest {
.containsExactlyInAnyOrder(tuple(group1.getUuid(), true), tuple(group2.getUuid(), true));
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(OUT).build(),
Pagination.all()))
@@ -136,17 +126,15 @@ public class QProfileEditGroupsDaoTest {
@Test
public void selectByQuery_search_by_name() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
- GroupDto group1 = db.users().insertGroup(organization, "sonar-users-project");
- GroupDto group2 = db.users().insertGroup(organization, "sonar-users-qprofile");
- GroupDto group3 = db.users().insertGroup(organization, "sonar-admin");
+ QProfileDto profile = db.qualityProfiles().insert();
+ GroupDto group1 = db.users().insertGroup("sonar-users-project");
+ GroupDto group2 = db.users().insertGroup("sonar-users-qprofile");
+ GroupDto group3 = db.users().insertGroup("sonar-admin");
db.qualityProfiles().addGroupPermission(profile, group1);
db.qualityProfiles().addGroupPermission(profile, group2);
db.qualityProfiles().addGroupPermission(profile, group3);
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(IN)
.setQuery("project").build(),
@@ -155,7 +143,6 @@ public class QProfileEditGroupsDaoTest {
.containsExactlyInAnyOrder(group1.getUuid());
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(IN)
.setQuery("UserS").build(),
@@ -166,16 +153,14 @@ public class QProfileEditGroupsDaoTest {
@Test
public void selectByQuery_with_paging() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
- GroupDto group1 = db.users().insertGroup(organization, "group1");
- GroupDto group2 = db.users().insertGroup(organization, "group2");
- GroupDto group3 = db.users().insertGroup(organization, "group3");
+ QProfileDto profile = db.qualityProfiles().insert();
+ GroupDto group1 = db.users().insertGroup("group1");
+ GroupDto group2 = db.users().insertGroup("group2");
+ GroupDto group3 = db.users().insertGroup("group3");
db.qualityProfiles().addGroupPermission(profile, group1);
db.qualityProfiles().addGroupPermission(profile, group2);
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(ANY)
.build(),
@@ -184,7 +169,6 @@ public class QProfileEditGroupsDaoTest {
.containsExactly(group1.getUuid());
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(ANY)
.build(),
@@ -193,7 +177,6 @@ public class QProfileEditGroupsDaoTest {
.containsExactly(group3.getUuid());
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(ANY)
.build(),
@@ -203,27 +186,21 @@ public class QProfileEditGroupsDaoTest {
}
@Test
- public void selectQProfileUuidsByOrganizationAndGroups() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile1 = db.qualityProfiles().insert(organization);
- QProfileDto profile2 = db.qualityProfiles().insert(organization);
- QProfileDto anotherProfile = db.qualityProfiles().insert(anotherOrganization);
- GroupDto group1 = db.users().insertGroup(organization, "group1");
- GroupDto group2 = db.users().insertGroup(organization, "group2");
- GroupDto group3 = db.users().insertGroup(organization, "group3");
+ public void selectQProfileUuidsByGroups() {
+ QProfileDto profile1 = db.qualityProfiles().insert();
+ QProfileDto profile2 = db.qualityProfiles().insert();
+ GroupDto group1 = db.users().insertGroup("group1");
+ GroupDto group2 = db.users().insertGroup("group2");
+ GroupDto group3 = db.users().insertGroup("group3");
db.qualityProfiles().addGroupPermission(profile1, group1);
db.qualityProfiles().addGroupPermission(profile1, group2);
db.qualityProfiles().addGroupPermission(profile2, group2);
- db.qualityProfiles().addGroupPermission(anotherProfile, group1);
- db.qualityProfiles().addGroupPermission(anotherProfile, group3);
- assertThat(underTest.selectQProfileUuidsByOrganizationAndGroups(db.getSession(), organization, asList(group1, group2)))
- .containsExactlyInAnyOrder(profile1.getKee(), profile2.getKee())
- .doesNotContain(anotherProfile.getKee());
- assertThat(underTest.selectQProfileUuidsByOrganizationAndGroups(db.getSession(), organization, asList(group1, group2, group3)))
+ assertThat(underTest.selectQProfileUuidsByGroups(db.getSession(), asList(group1, group2)))
+ .containsExactlyInAnyOrder(profile1.getKee(), profile2.getKee());
+ assertThat(underTest.selectQProfileUuidsByGroups(db.getSession(), asList(group1, group2, group3)))
.containsExactlyInAnyOrder(profile1.getKee(), profile2.getKee());
- assertThat(underTest.selectQProfileUuidsByOrganizationAndGroups(db.getSession(), organization, emptyList())).isEmpty();
+ assertThat(underTest.selectQProfileUuidsByGroups(db.getSession(),emptyList())).isEmpty();
}
@Test
@@ -234,7 +211,8 @@ public class QProfileEditGroupsDaoTest {
.setQProfileUuid("QPROFILE")
);
- assertThat(db.selectFirst(db.getSession(), "select uuid as \"uuid\", group_uuid as \"groupUuid\", qprofile_uuid as \"qProfileUuid\", created_at as \"createdAt\" from qprofile_edit_groups")).contains(
+ assertThat(db.selectFirst(db.getSession(),
+ "select uuid as \"uuid\", group_uuid as \"groupUuid\", qprofile_uuid as \"qProfileUuid\", created_at as \"createdAt\" from qprofile_edit_groups")).contains(
entry("uuid", "ABCD"),
entry("groupUuid", "100"),
entry("qProfileUuid", "QPROFILE"),
@@ -243,9 +221,8 @@ public class QProfileEditGroupsDaoTest {
@Test
public void deleteByQProfileAndGroup() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
- GroupDto group = db.users().insertGroup(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
+ GroupDto group = db.users().insertGroup();
db.qualityProfiles().addGroupPermission(profile, group);
assertThat(underTest.exists(db.getSession(), profile, group)).isTrue();
@@ -256,48 +233,38 @@ public class QProfileEditGroupsDaoTest {
@Test
public void deleteByQProfiles() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile1 = db.qualityProfiles().insert(organization);
- QProfileDto profile2 = db.qualityProfiles().insert(organization);
- QProfileDto profile3 = db.qualityProfiles().insert(organization);
- QProfileDto anotherProfile = db.qualityProfiles().insert(anotherOrganization);
- GroupDto group1 = db.users().insertGroup(organization);
- GroupDto group2 = db.users().insertGroup(organization);
+ QProfileDto profile1 = db.qualityProfiles().insert();
+ QProfileDto profile2 = db.qualityProfiles().insert();
+ QProfileDto profile3 = db.qualityProfiles().insert();
+ GroupDto group1 = db.users().insertGroup();
+ GroupDto group2 = db.users().insertGroup();
db.qualityProfiles().addGroupPermission(profile1, group1);
db.qualityProfiles().addGroupPermission(profile2, group2);
db.qualityProfiles().addGroupPermission(profile3, group1);
- db.qualityProfiles().addGroupPermission(anotherProfile, group1);
underTest.deleteByQProfiles(db.getSession(), asList(profile1, profile2));
assertThat(underTest.exists(db.getSession(), profile1, group1)).isFalse();
assertThat(underTest.exists(db.getSession(), profile2, group2)).isFalse();
assertThat(underTest.exists(db.getSession(), profile3, group1)).isTrue();
- assertThat(underTest.exists(db.getSession(), anotherProfile, group1)).isTrue();
}
@Test
public void deleteByGroup() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile1 = db.qualityProfiles().insert(organization);
- QProfileDto profile2 = db.qualityProfiles().insert(organization);
- QProfileDto profile3 = db.qualityProfiles().insert(organization);
- QProfileDto anotherProfile = db.qualityProfiles().insert(anotherOrganization);
- GroupDto group1 = db.users().insertGroup(organization);
- GroupDto group2 = db.users().insertGroup(organization);
+ QProfileDto profile1 = db.qualityProfiles().insert();
+ QProfileDto profile2 = db.qualityProfiles().insert();
+ QProfileDto profile3 = db.qualityProfiles().insert();
+ GroupDto group1 = db.users().insertGroup();
+ GroupDto group2 = db.users().insertGroup();
db.qualityProfiles().addGroupPermission(profile1, group1);
db.qualityProfiles().addGroupPermission(profile2, group2);
db.qualityProfiles().addGroupPermission(profile3, group1);
- db.qualityProfiles().addGroupPermission(anotherProfile, group1);
underTest.deleteByGroup(db.getSession(), group1);
assertThat(underTest.exists(db.getSession(), profile1, group1)).isFalse();
assertThat(underTest.exists(db.getSession(), profile2, group2)).isTrue();
assertThat(underTest.exists(db.getSession(), profile3, group1)).isFalse();
- assertThat(underTest.exists(db.getSession(), anotherProfile, group1)).isFalse();
}
}
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileEditUsersDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileEditUsersDaoTest.java
index d80585bf96e..03c0b365d94 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileEditUsersDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QProfileEditUsersDaoTest.java
@@ -55,9 +55,8 @@ public class QProfileEditUsersDaoTest {
@Test
public void exists() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
- QProfileDto anotherProfile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
+ QProfileDto anotherProfile = db.qualityProfiles().insert();
UserDto user = db.users().insertUser();
UserDto anotherUser = db.users().insertUser();
db.qualityProfiles().addUserPermission(profile, user);
@@ -70,8 +69,8 @@ public class QProfileEditUsersDaoTest {
@Test
public void countByQuery() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert();
UserDto user1 = db.users().insertUser();
UserDto user2 = db.users().insertUser();
UserDto user3 = db.users().insertUser();
@@ -82,19 +81,16 @@ public class QProfileEditUsersDaoTest {
db.qualityProfiles().addUserPermission(profile, user2);
assertThat(underTest.countByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(ANY).build()))
.isEqualTo(3);
assertThat(underTest.countByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(IN).build()))
.isEqualTo(2);
assertThat(underTest.countByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(OUT).build()))
.isEqualTo(1);
@@ -102,19 +98,17 @@ public class QProfileEditUsersDaoTest {
@Test
public void selectByQuery() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
UserDto user1 = db.users().insertUser();
UserDto user2 = db.users().insertUser();
UserDto user3 = db.users().insertUser();
- db.organizations().addMember(organization, user1);
- db.organizations().addMember(organization, user2);
- db.organizations().addMember(organization, user3);
+ db.organizations().addMember(db.getDefaultOrganization(), user1);
+ db.organizations().addMember(db.getDefaultOrganization(), user2);
+ db.organizations().addMember(db.getDefaultOrganization(), user3);
db.qualityProfiles().addUserPermission(profile, user1);
db.qualityProfiles().addUserPermission(profile, user2);
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(ANY).build(), Pagination.all()))
.extracting(UserMembershipDto::getUserUuid, UserMembershipDto::isSelected)
@@ -124,7 +118,6 @@ public class QProfileEditUsersDaoTest {
tuple(user3.getUuid(), false));
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(IN).build(),
Pagination.all()))
@@ -132,7 +125,6 @@ public class QProfileEditUsersDaoTest {
.containsExactlyInAnyOrder(tuple(user1.getUuid(), true), tuple(user2.getUuid(), true));
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(OUT).build(),
Pagination.all()))
@@ -142,20 +134,18 @@ public class QProfileEditUsersDaoTest {
@Test
public void selectByQuery_search_by_name_or_login() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
UserDto user1 = db.users().insertUser(u -> u.setLogin("user1").setName("John Doe"));
UserDto user2 = db.users().insertUser(u -> u.setLogin("user2").setName("John Smith"));
UserDto user3 = db.users().insertUser(u -> u.setLogin("user3").setName("Jane Doe"));
- db.organizations().addMember(organization, user1);
- db.organizations().addMember(organization, user2);
- db.organizations().addMember(organization, user3);
+ db.organizations().addMember(db.getDefaultOrganization(), user1);
+ db.organizations().addMember(db.getDefaultOrganization(), user2);
+ db.organizations().addMember(db.getDefaultOrganization(), user3);
db.qualityProfiles().addUserPermission(profile, user1);
db.qualityProfiles().addUserPermission(profile, user2);
db.qualityProfiles().addUserPermission(profile, user3);
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(IN)
.setQuery("user2").build(),
@@ -164,7 +154,6 @@ public class QProfileEditUsersDaoTest {
.containsExactlyInAnyOrder(user2.getUuid());
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(IN)
.setQuery("joh").build(),
@@ -173,7 +162,6 @@ public class QProfileEditUsersDaoTest {
.containsExactlyInAnyOrder(user1.getUuid(), user2.getUuid());
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(IN)
.setQuery("Doe").build(),
@@ -184,19 +172,17 @@ public class QProfileEditUsersDaoTest {
@Test
public void selectByQuery_with_paging() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
UserDto user1 = db.users().insertUser(u -> u.setName("user1"));
UserDto user2 = db.users().insertUser(u -> u.setName("user2"));
UserDto user3 = db.users().insertUser(u -> u.setName("user3"));
- db.organizations().addMember(organization, user1);
- db.organizations().addMember(organization, user2);
- db.organizations().addMember(organization, user3);
+ db.organizations().addMember(db.getDefaultOrganization(), user1);
+ db.organizations().addMember(db.getDefaultOrganization(), user2);
+ db.organizations().addMember(db.getDefaultOrganization(), user3);
db.qualityProfiles().addUserPermission(profile, user1);
db.qualityProfiles().addUserPermission(profile, user2);
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(ANY)
.build(),
@@ -205,7 +191,6 @@ public class QProfileEditUsersDaoTest {
.containsExactly(user1.getUuid());
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(ANY)
.build(),
@@ -214,7 +199,6 @@ public class QProfileEditUsersDaoTest {
.containsExactly(user3.getUuid());
assertThat(underTest.selectByQuery(db.getSession(), builder()
- .setOrganization(organization)
.setProfile(profile)
.setMembership(ANY)
.build(),
@@ -224,22 +208,17 @@ public class QProfileEditUsersDaoTest {
}
@Test
- public void selectQProfileUuidsByOrganizationAndUser() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile1 = db.qualityProfiles().insert(organization);
- QProfileDto profile2 = db.qualityProfiles().insert(organization);
- QProfileDto anotherProfile = db.qualityProfiles().insert(anotherOrganization);
+ public void selectQProfileUuidsByUser() {
+ QProfileDto profile1 = db.qualityProfiles().insert();
+ QProfileDto profile2 = db.qualityProfiles().insert();
UserDto user1 = db.users().insertUser(u -> u.setName("user1"));
UserDto user2 = db.users().insertUser(u -> u.setName("user2"));
db.qualityProfiles().addUserPermission(profile1, user1);
db.qualityProfiles().addUserPermission(profile2, user1);
- db.qualityProfiles().addUserPermission(anotherProfile, user1);
- assertThat(underTest.selectQProfileUuidsByOrganizationAndUser(db.getSession(), organization, user1))
- .containsExactlyInAnyOrder(profile1.getKee(), profile2.getKee())
- .doesNotContain(anotherProfile.getKee());
- assertThat(underTest.selectQProfileUuidsByOrganizationAndUser(db.getSession(), organization, user2)).isEmpty();
+ assertThat(underTest.selectQProfileUuidsByUser(db.getSession(), user1))
+ .containsExactlyInAnyOrder(profile1.getKee(), profile2.getKee());
+ assertThat(underTest.selectQProfileUuidsByUser(db.getSession(), user2)).isEmpty();
}
@Test
@@ -274,8 +253,7 @@ public class QProfileEditUsersDaoTest {
@Test
public void deleteByQProfileAndUser() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
UserDto user = db.users().insertUser();
db.qualityProfiles().addUserPermission(profile, user);
assertThat(underTest.exists(db.getSession(), profile, user)).isTrue();
@@ -287,62 +265,35 @@ public class QProfileEditUsersDaoTest {
@Test
public void deleteByQProfiles() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile1 = db.qualityProfiles().insert(organization);
- QProfileDto profile2 = db.qualityProfiles().insert(organization);
- QProfileDto profile3 = db.qualityProfiles().insert(organization);
- QProfileDto anotherProfile = db.qualityProfiles().insert(anotherOrganization);
+ QProfileDto profile1 = db.qualityProfiles().insert();
+ QProfileDto profile2 = db.qualityProfiles().insert();
+ QProfileDto profile3 = db.qualityProfiles().insert();
UserDto user1 = db.users().insertUser();
UserDto user2 = db.users().insertUser();
db.qualityProfiles().addUserPermission(profile1, user1);
db.qualityProfiles().addUserPermission(profile2, user2);
db.qualityProfiles().addUserPermission(profile3, user1);
- db.qualityProfiles().addUserPermission(anotherProfile, user1);
underTest.deleteByQProfiles(db.getSession(), asList(profile1, profile2));
assertThat(underTest.exists(db.getSession(), profile1, user1)).isFalse();
assertThat(underTest.exists(db.getSession(), profile2, user2)).isFalse();
assertThat(underTest.exists(db.getSession(), profile3, user1)).isTrue();
- assertThat(underTest.exists(db.getSession(), anotherProfile, user1)).isTrue();
}
@Test
public void deleteByUser() {
- OrganizationDto organization1 = db.organizations().insert();
- OrganizationDto organization2 = db.organizations().insert();
- QProfileDto profile1 = db.qualityProfiles().insert(organization1);
- QProfileDto profile2 = db.qualityProfiles().insert(organization2);
- QProfileDto profile3 = db.qualityProfiles().insert(organization1);
+ QProfileDto profile1 = db.qualityProfiles().insert();
+ QProfileDto profile3 = db.qualityProfiles().insert();
UserDto user1 = db.users().insertUser();
UserDto user2 = db.users().insertUser();
db.qualityProfiles().addUserPermission(profile1, user1);
- db.qualityProfiles().addUserPermission(profile2, user1);
db.qualityProfiles().addUserPermission(profile3, user2);
underTest.deleteByUser(db.getSession(), user1);
assertThat(underTest.exists(db.getSession(), profile1, user1)).isFalse();
- assertThat(underTest.exists(db.getSession(), profile2, user1)).isFalse();
assertThat(underTest.exists(db.getSession(), profile3, user2)).isTrue();
}
- @Test
- public void deleteByOrganizationAndUser() {
- OrganizationDto organization1 = db.organizations().insert();
- OrganizationDto organization2 = db.organizations().insert();
- QProfileDto profile1 = db.qualityProfiles().insert(organization1);
- QProfileDto profile2 = db.qualityProfiles().insert(organization2);
- UserDto user = db.users().insertUser();
- db.organizations().addMember(organization1, user);
- db.organizations().addMember(organization2, user);
- db.qualityProfiles().addUserPermission(profile1, user);
- db.qualityProfiles().addUserPermission(profile2, user);
-
- underTest.deleteByOrganizationAndUser(db.getSession(), organization1, user);
-
- assertThat(underTest.exists(db.getSession(), profile1, user)).isFalse();
- assertThat(underTest.exists(db.getSession(), profile2, user)).isTrue();
- }
}
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QualityProfileDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QualityProfileDaoTest.java
index a8f3ecaba0b..ce85e85643c 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QualityProfileDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QualityProfileDaoTest.java
@@ -38,7 +38,6 @@ import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.organization.OrganizationDto;
-import org.sonar.db.organization.OrganizationTesting;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.rule.RuleDefinitionDto;
@@ -64,12 +63,10 @@ public class QualityProfileDaoTest {
private DbSession dbSession = db.getSession();
private QualityProfileDao underTest = db.getDbClient().qualityProfileDao();
- private OrganizationDto organization;
@Before
public void before() {
when(system.now()).thenReturn(UtcDateUtils.parseDateTime("2014-01-20T12:00:00+0000").getTime());
- organization = db.organizations().insertForUuid("QualityProfileDaoTest-ORG");
}
@After
@@ -82,7 +79,6 @@ public class QualityProfileDaoTest {
QProfileDto dto = new QProfileDto()
.setKee("theUuid")
.setRulesProfileUuid("theRulesProfileUuid")
- .setOrganizationUuid(organization.getUuid())
.setName("theName")
.setLanguage("theLang")
.setLastUsed(1_000L)
@@ -101,7 +97,6 @@ public class QualityProfileDaoTest {
assertThat(reloaded.getLastUsed()).isEqualTo(dto.getLastUsed());
assertThat(reloaded.getRulesUpdatedAt()).isEqualTo(dto.getRulesUpdatedAt());
assertThat(reloaded.getParentKee()).isEqualTo(dto.getParentKee());
- assertThat(reloaded.getOrganizationUuid()).isEqualTo(dto.getOrganizationUuid());
assertThat(reloaded.isBuiltIn()).isEqualTo(dto.isBuiltIn());
}
@@ -110,7 +105,6 @@ public class QualityProfileDaoTest {
QProfileDto initial = new QProfileDto()
.setKee("theUuid")
.setRulesProfileUuid("theRulesProfileUuid")
- .setOrganizationUuid(organization.getUuid())
.setName("theName")
.setLanguage("theLang")
.setLastUsed(1_000L)
@@ -129,15 +123,11 @@ public class QualityProfileDaoTest {
.setParentKee("theNewParentUuid")
.setUserUpdatedAt(12_000L)
.setRulesUpdatedAt("2017-06-01")
- .setIsBuiltIn(false)
-
- // field that cannot be changed
- .setOrganizationUuid("theNewOrg");
+ .setIsBuiltIn(false);
underTest.update(dbSession, update);
QProfileDto reloaded = underTest.selectByUuid(dbSession, initial.getKee());
assertThat(reloaded.getKee()).isEqualTo(initial.getKee());
- assertThat(reloaded.getOrganizationUuid()).isEqualTo(initial.getOrganizationUuid());
// updated fields
assertThat(reloaded.getLanguage()).isEqualTo(update.getLanguage());
@@ -237,11 +227,11 @@ public class QualityProfileDaoTest {
@Test
public void test_deleteProjectAssociationsByProfileUuids() {
- QProfileDto profile1 = db.qualityProfiles().insert(organization);
- QProfileDto profile2 = db.qualityProfiles().insert(organization);
- ProjectDto project1 = db.components().insertPrivateProjectDto(organization);
- ProjectDto project2 = db.components().insertPrivateProjectDto(organization);
- ProjectDto project3 = db.components().insertPrivateProjectDto(organization);
+ QProfileDto profile1 = db.qualityProfiles().insert();
+ QProfileDto profile2 = db.qualityProfiles().insert();
+ ProjectDto project1 = db.components().insertPrivateProjectDto();
+ ProjectDto project2 = db.components().insertPrivateProjectDto();
+ ProjectDto project3 = db.components().insertPrivateProjectDto();
db.getDbClient().projectDao().selectByUuid(dbSession, project1.getUuid()).get();
@@ -259,7 +249,7 @@ public class QualityProfileDaoTest {
@Test
public void deleteProjectAssociationsByProfileUuids_does_nothing_if_empty_uuids() {
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
ProjectDto project = db.components().insertPrivateProjectDto();
db.qualityProfiles().associateWithProject(project, profile);
@@ -272,7 +262,7 @@ public class QualityProfileDaoTest {
public void test_selectAll() {
List<QProfileDto> sharedData = createSharedData();
- List<QProfileDto> reloadeds = underTest.selectOrderedByOrganizationUuid(dbSession, organization);
+ List<QProfileDto> reloadeds = underTest.selectAll(dbSession);
assertThat(reloadeds).hasSize(sharedData.size());
@@ -285,7 +275,6 @@ public class QualityProfileDaoTest {
assertThat(reloaded.getRulesProfileUuid()).isEqualTo(original.getRulesProfileUuid());
assertThat(reloaded.getName()).isEqualTo(original.getName());
assertThat(reloaded.getKee()).isEqualTo(original.getKee());
- assertThat(reloaded.getOrganizationUuid()).isEqualTo(original.getOrganizationUuid());
assertThat(reloaded.getLanguage()).isEqualTo(original.getLanguage());
assertThat(reloaded.getParentKee()).isEqualTo(original.getParentKee());
assertThat(reloaded.getRulesUpdatedAt()).isEqualTo(original.getRulesUpdatedAt());
@@ -296,11 +285,10 @@ public class QualityProfileDaoTest {
}
@Test
- public void selectOrderedByOrganizationUuid_is_sorted_by_profile_name() {
+ public void selectAll_is_sorted_by_profile_name() {
QProfileDto dto1 = new QProfileDto()
.setKee("js_first")
.setRulesProfileUuid("rp-js_first")
- .setOrganizationUuid(organization.getUuid())
.setName("First")
.setLanguage("js")
.setLastUsed(1_000L)
@@ -312,7 +300,6 @@ public class QualityProfileDaoTest {
QProfileDto dto2 = new QProfileDto()
.setKee("js_second")
.setRulesProfileUuid("rp-js_second")
- .setOrganizationUuid(organization.getUuid())
.setName("Second")
.setLanguage("js")
.setLastUsed(1_000L)
@@ -324,7 +311,6 @@ public class QualityProfileDaoTest {
QProfileDto dto3 = new QProfileDto()
.setKee("js_third")
.setRulesProfileUuid("rp-js_third")
- .setOrganizationUuid(organization.getUuid())
.setName("Third")
.setLanguage("js")
.setLastUsed(1_000L)
@@ -333,7 +319,7 @@ public class QualityProfileDaoTest {
.setIsBuiltIn(false);
underTest.insert(dbSession, dto3);
- List<QProfileDto> dtos = underTest.selectOrderedByOrganizationUuid(dbSession, organization);
+ List<QProfileDto> dtos = underTest.selectAll(dbSession);
assertThat(dtos).hasSize(3);
assertThat(dtos.get(0).getName()).isEqualTo("First");
@@ -343,92 +329,78 @@ public class QualityProfileDaoTest {
@Test
public void selectDefaultProfile() {
- List<QProfileDto> sharedData = createSharedData();
+ createSharedData();
- QProfileDto java = underTest.selectDefaultProfile(dbSession, organization, "java");
+ QProfileDto java = underTest.selectDefaultProfile(dbSession, "java");
assertThat(java).isNotNull();
assertThat(java.getKee()).isEqualTo("java_sonar_way");
- assertThat(underTest.selectDefaultProfile(dbSession, db.organizations().insert(), "java")).isNull();
- assertThat(underTest.selectDefaultProfile(dbSession, organization, "js")).isNull();
+ assertThat(underTest.selectDefaultProfile(dbSession, "js")).isNull();
}
@Test
public void selectDefaultProfiles() {
createSharedData();
- List<QProfileDto> java = underTest.selectDefaultProfiles(dbSession, organization, singletonList("java"));
+ List<QProfileDto> java = underTest.selectDefaultProfiles(dbSession, singletonList("java"));
assertThat(java).extracting(QProfileDto::getKee).containsOnly("java_sonar_way");
- assertThat(underTest.selectDefaultProfiles(dbSession, organization, singletonList("js"))).isEmpty();
- assertThat(underTest.selectDefaultProfiles(dbSession, organization, of("java", "js"))).extracting(QProfileDto::getKee).containsOnly("java_sonar_way");
- assertThat(underTest.selectDefaultProfiles(dbSession, organization, of("js", "java"))).extracting(QProfileDto::getKee).containsOnly("java_sonar_way");
- assertThat(underTest.selectDefaultProfiles(dbSession, organization, Collections.emptyList())).isEmpty();
+ assertThat(underTest.selectDefaultProfiles(dbSession, singletonList("js"))).isEmpty();
+ assertThat(underTest.selectDefaultProfiles(dbSession, of("java", "js"))).extracting(QProfileDto::getKee).containsOnly("java_sonar_way");
+ assertThat(underTest.selectDefaultProfiles(dbSession, of("js", "java"))).extracting(QProfileDto::getKee).containsOnly("java_sonar_way");
+ assertThat(underTest.selectDefaultProfiles(dbSession, Collections.emptyList())).isEmpty();
}
@Test
public void selectByNameAndLanguage() {
List<QProfileDto> sharedData = createSharedData();
- QProfileDto dto = underTest.selectByNameAndLanguage(dbSession, organization, "Sonar Way", "java");
+ QProfileDto dto = underTest.selectByNameAndLanguage(dbSession, "Sonar Way", "java");
assertThat(dto.getName()).isEqualTo("Sonar Way");
assertThat(dto.getLanguage()).isEqualTo("java");
assertThat(dto.getParentKee()).isNull();
- assertThat(underTest.selectByNameAndLanguage(dbSession, organization, "Sonar Way", "java")).isNotNull();
- assertThat(underTest.selectByNameAndLanguage(dbSession, organization, "Sonar Way", "unknown")).isNull();
+ assertThat(underTest.selectByNameAndLanguage(dbSession, "Sonar Way", "java")).isNotNull();
+ assertThat(underTest.selectByNameAndLanguage(dbSession, "Sonar Way", "unknown")).isNull();
}
@Test
public void selectByNameAndLanguages() {
createSharedData();
- List<QProfileDto> dtos = underTest.selectByNameAndLanguages(dbSession, organization, "Sonar Way", singletonList("java"));
+ List<QProfileDto> dtos = underTest.selectByNameAndLanguages(dbSession, "Sonar Way", singletonList("java"));
assertThat(dtos).hasSize(1);
QProfileDto dto = dtos.iterator().next();
assertThat(dto.getName()).isEqualTo("Sonar Way");
assertThat(dto.getLanguage()).isEqualTo("java");
assertThat(dto.getParentKee()).isNull();
- assertThat(underTest.selectByNameAndLanguages(dbSession, organization, "Sonar Way", singletonList("unknown"))).isEmpty();
- assertThat(underTest.selectByNameAndLanguages(dbSession, organization, "Sonar Way", of("java", "unknown")))
+ assertThat(underTest.selectByNameAndLanguages(dbSession, "Sonar Way", singletonList("unknown"))).isEmpty();
+ assertThat(underTest.selectByNameAndLanguages(dbSession, "Sonar Way", of("java", "unknown")))
.extracting(QProfileDto::getKee).containsOnly(dto.getKee());
}
@Test
public void selectByLanguage() {
- QProfileDto profile = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization.getUuid());
+ QProfileDto profile = QualityProfileTesting.newQualityProfileDto();
underTest.insert(dbSession, profile);
- List<QProfileDto> results = underTest.selectByLanguage(dbSession, organization, profile.getLanguage());
+ List<QProfileDto> results = underTest.selectByLanguage(dbSession, profile.getLanguage());
assertThat(results).hasSize(1);
QProfileDto result = results.get(0);
assertThat(result.getName()).isEqualTo(profile.getName());
assertThat(result.getKee()).isEqualTo(profile.getKee());
assertThat(result.getLanguage()).isEqualTo(profile.getLanguage());
- assertThat(result.getOrganizationUuid()).isEqualTo(profile.getOrganizationUuid());
assertThat(result.getRulesProfileUuid()).isEqualTo(profile.getRulesProfileUuid());
}
@Test
- public void should_not_selectByLanguage_in_wrong_organization() {
- QProfileDto profile = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization.getUuid());
- underTest.insert(dbSession, profile);
-
- List<QProfileDto> results = underTest.selectByLanguage(dbSession, OrganizationTesting.newOrganizationDto(), profile.getLanguage());
- assertThat(results).isEmpty();
- }
-
- @Test
public void should_not_selectByLanguage_with_wrong_language() {
- QProfileDto profile = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization.getUuid());
+ QProfileDto profile = QualityProfileTesting.newQualityProfileDto();
underTest.insert(dbSession, profile);
- List<QProfileDto> results = underTest.selectByLanguage(dbSession, organization, "another language");
+ List<QProfileDto> results = underTest.selectByLanguage(dbSession, "another language");
assertThat(results).isEmpty();
}
@@ -437,7 +409,6 @@ public class QualityProfileDaoTest {
QProfileDto original1 = new QProfileDto()
.setKee("java_child1")
.setRulesProfileUuid("rp-java_child1")
- .setOrganizationUuid(organization.getUuid())
.setName("Child1")
.setLanguage("java")
.setLastUsed(1_000L)
@@ -450,7 +421,6 @@ public class QualityProfileDaoTest {
QProfileDto original2 = new QProfileDto()
.setKee("java_child2")
.setRulesProfileUuid("rp-java_child2")
- .setOrganizationUuid(organization.getUuid())
.setName("Child2")
.setLanguage("java")
.setLastUsed(1_000L)
@@ -463,7 +433,6 @@ public class QualityProfileDaoTest {
QProfileDto original3 = new QProfileDto()
.setKee("java_parent")
.setRulesProfileUuid("rp-java_parent")
- .setOrganizationUuid(organization.getUuid())
.setName("Parent")
.setLanguage("java")
.setLastUsed(1_000L)
@@ -475,7 +444,6 @@ public class QualityProfileDaoTest {
QProfileDto original4 = new QProfileDto()
.setKee("js_child1")
.setRulesProfileUuid("rp-js_child1")
- .setOrganizationUuid(organization.getUuid())
.setName("Child1")
.setLanguage("js")
.setLastUsed(1_000L)
@@ -488,7 +456,6 @@ public class QualityProfileDaoTest {
QProfileDto original5 = new QProfileDto()
.setKee("js_child2")
.setRulesProfileUuid("rp-js_child2")
- .setOrganizationUuid(organization.getUuid())
.setName("Child2")
.setLanguage("js")
.setLastUsed(1_000L)
@@ -501,7 +468,6 @@ public class QualityProfileDaoTest {
QProfileDto original6 = new QProfileDto()
.setKee("js_parent")
.setRulesProfileUuid("rp-js_parent")
- .setOrganizationUuid(organization.getUuid())
.setName("Parent")
.setLanguage("js")
.setLastUsed(1_000L)
@@ -528,13 +494,13 @@ public class QualityProfileDaoTest {
@Test
public void selectBuiltInRuleProfilesWithActiveRules() {
// a quality profile without active rules but not builtin
- db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setIsBuiltIn(false));
+ db.qualityProfiles().insert(qp -> qp.setIsBuiltIn(false));
// a built-in quality profile without active rules
- db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setIsBuiltIn(true));
+ db.qualityProfiles().insert(qp -> qp.setIsBuiltIn(true));
// a built-in quality profile with active rules
- QProfileDto builtInQPWithActiveRules = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setIsBuiltIn(true));
+ QProfileDto builtInQPWithActiveRules = db.qualityProfiles().insert(qp -> qp.setIsBuiltIn(true));
RuleDefinitionDto ruleDefinitionDto = db.rules().insert();
db.qualityProfiles().activateRule(builtInQPWithActiveRules, ruleDefinitionDto);
@@ -547,38 +513,35 @@ public class QualityProfileDaoTest {
@Test
public void selectByRuleProfileUuid() {
- db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setIsBuiltIn(false));
- db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setIsBuiltIn(true));
- QProfileDto qprofile1 = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setIsBuiltIn(true));
+ db.qualityProfiles().insert(qp -> qp.setIsBuiltIn(false));
+ db.qualityProfiles().insert(qp -> qp.setIsBuiltIn(true));
+ QProfileDto qprofile1 = db.qualityProfiles().insert(qp -> qp.setIsBuiltIn(true));
dbSession.commit();
- assertThat(underTest.selectByRuleProfileUuid(dbSession, db.getDefaultOrganization().getUuid(), qprofile1.getRulesProfileUuid()))
+ assertThat(underTest.selectByRuleProfileUuid(dbSession, qprofile1.getRulesProfileUuid()))
.extracting(QProfileDto::getName)
.isEqualTo(qprofile1.getName());
- assertThat(underTest.selectByRuleProfileUuid(dbSession, "A", qprofile1.getRulesProfileUuid()))
- .isNull();
-
- assertThat(underTest.selectByRuleProfileUuid(dbSession, db.getDefaultOrganization().getUuid(), "A"))
+ assertThat(underTest.selectByRuleProfileUuid(dbSession, "A"))
.isNull();
}
@Test
public void selectDefaultBuiltInProfilesWithoutActiveRules() {
// a quality profile without active rules but not builtin
- db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setIsBuiltIn(false).setLanguage("java"));
+ db.qualityProfiles().insert(qp -> qp.setIsBuiltIn(false).setLanguage("java"));
// a built-in quality profile without active rules
- QProfileDto javaQPWithoutActiveRules = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setIsBuiltIn(true).setLanguage("java"));
+ QProfileDto javaQPWithoutActiveRules = db.qualityProfiles().insert(qp -> qp.setIsBuiltIn(true).setLanguage("java"));
db.qualityProfiles().setAsDefault(javaQPWithoutActiveRules);
// a built-in quality profile without active rules
- QProfileDto cppQPWithoutActiveRules = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setIsBuiltIn(true).setLanguage("cpp"));
+ QProfileDto cppQPWithoutActiveRules = db.qualityProfiles().insert(qp -> qp.setIsBuiltIn(true).setLanguage("cpp"));
db.qualityProfiles().setAsDefault(cppQPWithoutActiveRules);
// a built-in quality profile with active rules
- QProfileDto builtInQPWithActiveRules = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setIsBuiltIn(true).setLanguage("java"));
+ QProfileDto builtInQPWithActiveRules = db.qualityProfiles().insert(qp -> qp.setIsBuiltIn(true).setLanguage("java"));
RuleDefinitionDto ruleDefinitionDto = db.rules().insert();
db.qualityProfiles().activateRule(builtInQPWithActiveRules, ruleDefinitionDto);
@@ -601,7 +564,7 @@ public class QualityProfileDaoTest {
@Test
public void selectDescendants_returns_empty_if_no_children() {
- QProfileDto base = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto base = db.qualityProfiles().insert();
Collection<QProfileDto> descendants = underTest.selectDescendants(dbSession, singleton(base));
@@ -617,14 +580,14 @@ public class QualityProfileDaoTest {
@Test
public void selectDescendants_returns_descendants_in_any_order() {
- QProfileDto base1 = db.qualityProfiles().insert(db.getDefaultOrganization());
- QProfileDto child1OfBase1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setParentKee(base1.getKee()));
- QProfileDto child2OfBase1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setParentKee(base1.getKee()));
- QProfileDto grandChildOfBase1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setParentKee(child1OfBase1.getKee()));
- QProfileDto base2 = db.qualityProfiles().insert(db.getDefaultOrganization());
- QProfileDto childOfBase2 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setParentKee(base2.getKee()));
- QProfileDto grandChildOfBase2 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setParentKee(childOfBase2.getKee()));
- QProfileDto other = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto base1 = db.qualityProfiles().insert();
+ QProfileDto child1OfBase1 = db.qualityProfiles().insert(p -> p.setParentKee(base1.getKee()));
+ QProfileDto child2OfBase1 = db.qualityProfiles().insert(p -> p.setParentKee(base1.getKee()));
+ QProfileDto grandChildOfBase1 = db.qualityProfiles().insert(p -> p.setParentKee(child1OfBase1.getKee()));
+ QProfileDto base2 = db.qualityProfiles().insert();
+ QProfileDto childOfBase2 = db.qualityProfiles().insert(p -> p.setParentKee(base2.getKee()));
+ QProfileDto grandChildOfBase2 = db.qualityProfiles().insert(p -> p.setParentKee(childOfBase2.getKee()));
+ QProfileDto other = db.qualityProfiles().insert();
// descendants of a single base profile
verifyDescendants(singleton(base1), asList(child1OfBase1, child2OfBase1, grandChildOfBase1));
@@ -650,32 +613,25 @@ public class QualityProfileDaoTest {
@Test
public void countProjectsByProfileKey() {
- QProfileDto profileWithoutProjects = db.qualityProfiles().insert(organization);
- QProfileDto profileWithProjects = db.qualityProfiles().insert(organization);
- ProjectDto project1 = db.components().insertPrivateProjectDto(organization);
- ProjectDto project2 = db.components().insertPrivateProjectDto(organization);
+ QProfileDto profileWithoutProjects = db.qualityProfiles().insert();
+ QProfileDto profileWithProjects = db.qualityProfiles().insert();
+ ProjectDto project1 = db.components().insertPrivateProjectDto();
+ ProjectDto project2 = db.components().insertPrivateProjectDto();
db.qualityProfiles().associateWithProject(project1, profileWithProjects);
db.qualityProfiles().associateWithProject(project2, profileWithProjects);
- OrganizationDto otherOrg = db.organizations().insert();
- QProfileDto profileInOtherOrg = db.qualityProfiles().insert(otherOrg);
- ProjectDto projectInOtherOrg = db.components().insertPrivateProjectDto(otherOrg);
- db.qualityProfiles().associateWithProject(projectInOtherOrg, profileInOtherOrg);
-
- assertThat(underTest.countProjectsByOrganizationAndProfiles(dbSession, organization, asList(profileWithoutProjects, profileWithProjects, profileInOtherOrg))).containsOnly(
+ assertThat(underTest.countProjectsByProfiles(dbSession, asList(profileWithoutProjects, profileWithProjects))).containsOnly(
MapEntry.entry(profileWithProjects.getKee(), 2L));
- assertThat(underTest.countProjectsByOrganizationAndProfiles(dbSession, otherOrg, singletonList(profileWithoutProjects))).isEmpty();
- assertThat(underTest.countProjectsByOrganizationAndProfiles(dbSession, organization, Collections.emptyList())).isEmpty();
+ assertThat(underTest.countProjectsByProfiles(dbSession, Collections.emptyList())).isEmpty();
}
@Test
public void test_selectAssociatedToProjectAndLanguage() {
- OrganizationDto org = db.organizations().insert();
- ProjectDto project1 = db.components().insertPublicProjectDto(org);
- ProjectDto project2 = db.components().insertPublicProjectDto(org);
- QProfileDto javaProfile = db.qualityProfiles().insert(org, p -> p.setLanguage("java"));
- QProfileDto jsProfile = db.qualityProfiles().insert(org, p -> p.setLanguage("js"));
+ ProjectDto project1 = db.components().insertPublicProjectDto();
+ ProjectDto project2 = db.components().insertPublicProjectDto();
+ QProfileDto javaProfile = db.qualityProfiles().insert(p -> p.setLanguage("java"));
+ QProfileDto jsProfile = db.qualityProfiles().insert(p -> p.setLanguage("js"));
db.qualityProfiles().associateWithProject(project1, javaProfile, jsProfile);
assertThat(underTest.selectAssociatedToProjectAndLanguage(dbSession, project1, "java").getKee())
@@ -690,11 +646,10 @@ public class QualityProfileDaoTest {
@Test
public void test_selectAssociatedToProjectUuidAndLanguages() {
- OrganizationDto org = db.organizations().insert();
- ProjectDto project1 = db.components().insertPublicProjectDto(org);
- ProjectDto project2 = db.components().insertPublicProjectDto(org);
- QProfileDto javaProfile = db.qualityProfiles().insert(org, p -> p.setLanguage("java"));
- QProfileDto jsProfile = db.qualityProfiles().insert(org, p -> p.setLanguage("js"));
+ ProjectDto project1 = db.components().insertPublicProjectDto();
+ ProjectDto project2 = db.components().insertPublicProjectDto();
+ QProfileDto javaProfile = db.qualityProfiles().insert(p -> p.setLanguage("java"));
+ QProfileDto jsProfile = db.qualityProfiles().insert(p -> p.setLanguage("js"));
db.qualityProfiles().associateWithProject(project1, javaProfile, jsProfile);
assertThat(underTest.selectAssociatedToProjectUuidAndLanguages(dbSession, project1, singletonList("java")))
@@ -713,11 +668,10 @@ public class QualityProfileDaoTest {
@Test
public void test_updateProjectProfileAssociation() {
- OrganizationDto org = db.organizations().insert();
- ProjectDto project = db.components().insertPrivateProjectDto(org);
- QProfileDto javaProfile1 = db.qualityProfiles().insert(org, p -> p.setLanguage("java"));
- QProfileDto jsProfile = db.qualityProfiles().insert(org, p -> p.setLanguage("js"));
- QProfileDto javaProfile2 = db.qualityProfiles().insert(org, p -> p.setLanguage("java"));
+ ProjectDto project = db.components().insertPrivateProjectDto();
+ QProfileDto javaProfile1 = db.qualityProfiles().insert(p -> p.setLanguage("java"));
+ QProfileDto jsProfile = db.qualityProfiles().insert(p -> p.setLanguage("js"));
+ QProfileDto javaProfile2 = db.qualityProfiles().insert(p -> p.setLanguage("java"));
db.qualityProfiles().associateWithProject(project, javaProfile1, jsProfile);
underTest.updateProjectProfileAssociation(dbSession, project, javaProfile2.getKee(), javaProfile1.getKee());
@@ -741,9 +695,9 @@ public class QualityProfileDaoTest {
@Test
public void select_selected_projects() {
- ComponentDto project1 = db.components().insertPrivateProject(t -> t.setName("Project1 name").setOrganizationUuid(organization.getUuid()));
- ComponentDto project2 = db.components().insertPrivateProject(t -> t.setName("Project2 name").setOrganizationUuid(organization.getUuid()));
- ComponentDto project3 = db.components().insertPrivateProject(t -> t.setName("Project3 name").setOrganizationUuid(organization.getUuid()));
+ ComponentDto project1 = db.components().insertPrivateProject(t -> t.setName("Project1 name"));
+ ComponentDto project2 = db.components().insertPrivateProject(t -> t.setName("Project2 name"));
+ ComponentDto project3 = db.components().insertPrivateProject(t -> t.setName("Project3 name"));
OrganizationDto organization2 = db.organizations().insert();
ComponentDto project4 = db.components().insertPrivateProject(t -> t.setName("Project4 name").setOrganizationUuid(organization2.getUuid()));
ComponentDto branch = db.components().insertProjectBranch(project1, t -> t.setKey("branch"));
@@ -758,24 +712,21 @@ public class QualityProfileDaoTest {
db.qualityProfiles().associateWithProject(db.components().getProjectDto(project3), profile2);
QProfileDto profile3 = newQualityProfileDto();
- assertThat(underTest.selectSelectedProjects(dbSession, organization, profile1, null))
+ assertThat(underTest.selectSelectedProjects(dbSession, profile1, null))
.extracting("projectUuid", "projectKey", "projectName", "profileKey")
.containsOnly(
tuple(project1.uuid(), project1.getDbKey(), project1.name(), profile1.getKee()),
tuple(project2.uuid(), project2.getDbKey(), project2.name(), profile1.getKee()));
- assertThat(underTest.selectSelectedProjects(dbSession, organization, profile1, "ect1")).hasSize(1);
- assertThat(underTest.selectSelectedProjects(dbSession, organization, profile3, null)).isEmpty();
+ assertThat(underTest.selectSelectedProjects(dbSession, profile1, "ect1")).hasSize(1);
+ assertThat(underTest.selectSelectedProjects(dbSession, profile3, null)).isEmpty();
}
@Test
public void select_deselected_projects() {
- ComponentDto project1 = db.components().insertPrivateProject(t -> t.setName("Project1 name").setOrganizationUuid(organization.getUuid()));
- ComponentDto project2 = db.components().insertPrivateProject(t -> t.setName("Project2 name").setOrganizationUuid(organization.getUuid()));
- ComponentDto project3 = db.components().insertPrivateProject(t -> t.setName("Project3 name").setOrganizationUuid(organization.getUuid()));
- OrganizationDto organization2 = db.organizations().insert();
- ComponentDto project4 = db.components().insertPrivateProject(t -> t.setName("Project4 name").setOrganizationUuid(organization2.getUuid()));
- ComponentDto branch = db.components().insertProjectBranch(project1, t -> t.setKey("branch"));
+ ComponentDto project1 = db.components().insertPrivateProject(t -> t.setName("Project1 name"));
+ ComponentDto project2 = db.components().insertPrivateProject(t -> t.setName("Project2 name"));
+ ComponentDto project3 = db.components().insertPrivateProject(t -> t.setName("Project3 name"));
QProfileDto profile1 = newQualityProfileDto();
db.qualityProfiles().insert(profile1);
@@ -786,23 +737,21 @@ public class QualityProfileDaoTest {
db.qualityProfiles().associateWithProject(db.components().getProjectDto(project2), profile2);
QProfileDto profile3 = newQualityProfileDto();
- assertThat(underTest.selectDeselectedProjects(dbSession, organization, profile1, null))
+ assertThat(underTest.selectDeselectedProjects(dbSession, profile1, null))
.extracting("projectUuid", "projectKey", "projectName", "profileKey")
.containsExactly(
tuple(project2.uuid(), project2.getDbKey(), project2.name(), null),
tuple(project3.uuid(), project3.getDbKey(), project3.name(), null));
- assertThat(underTest.selectDeselectedProjects(dbSession, organization, profile1, "ect2")).hasSize(1);
- assertThat(underTest.selectDeselectedProjects(dbSession, organization, profile3, null)).hasSize(3);
+ assertThat(underTest.selectDeselectedProjects(dbSession, profile1, "ect2")).hasSize(1);
+ assertThat(underTest.selectDeselectedProjects(dbSession, profile3, null)).hasSize(3);
}
@Test
public void select_project_associations() {
- ComponentDto project1 = db.components().insertPrivateProject(t -> t.setName("Project1 name").setOrganizationUuid(organization.getUuid()));
- ComponentDto project2 = db.components().insertPrivateProject(t -> t.setName("Project2 name").setOrganizationUuid(organization.getUuid()));
- ComponentDto project3 = db.components().insertPrivateProject(t -> t.setName("Project3 name").setOrganizationUuid(organization.getUuid()));
- OrganizationDto organization2 = db.organizations().insert();
- ComponentDto project4 = db.components().insertPrivateProject(t -> t.setName("Project4 name").setOrganizationUuid(organization2.getUuid()));
+ ComponentDto project1 = db.components().insertPrivateProject(t -> t.setName("Project1 name"));
+ ComponentDto project2 = db.components().insertPrivateProject(t -> t.setName("Project2 name"));
+ ComponentDto project3 = db.components().insertPrivateProject(t -> t.setName("Project3 name"));
ComponentDto branch = db.components().insertProjectBranch(project1, t -> t.setKey("branch"));
QProfileDto profile1 = newQualityProfileDto();
@@ -814,31 +763,25 @@ public class QualityProfileDaoTest {
db.qualityProfiles().associateWithProject(db.components().getProjectDto(project2), profile2);
QProfileDto profile3 = newQualityProfileDto();
- assertThat(underTest.selectProjectAssociations(dbSession, organization, profile1, null))
+ assertThat(underTest.selectProjectAssociations(dbSession, profile1, null))
.extracting("projectUuid", "projectKey", "projectName", "profileKey")
.containsOnly(
tuple(project1.uuid(), project1.getDbKey(), project1.name(), profile1.getKee()),
tuple(project2.uuid(), project2.getDbKey(), project2.name(), null),
tuple(project3.uuid(), project3.getDbKey(), project3.name(), null));
- assertThat(underTest.selectProjectAssociations(dbSession, organization, profile1, "ect2")).hasSize(1);
- assertThat(underTest.selectProjectAssociations(dbSession, organization, profile3, null)).hasSize(3);
+ assertThat(underTest.selectProjectAssociations(dbSession, profile1, "ect2")).hasSize(1);
+ assertThat(underTest.selectProjectAssociations(dbSession, profile3, null)).hasSize(3);
}
@Test
public void selectUuidsOfCustomRulesProfiles_returns_the_custom_profiles_with_specified_name() {
- OrganizationDto org1 = db.organizations().insert();
- OrganizationDto org2 = db.organizations().insert();
- OrganizationDto org3 = db.organizations().insert();
- QProfileDto outdatedProfile1 = db.qualityProfiles().insert(org1, p -> p.setIsBuiltIn(false).setLanguage("java").setName("foo"));
- QProfileDto outdatedProfile2 = db.qualityProfiles().insert(org2, p -> p.setIsBuiltIn(false).setLanguage("java").setName("foo"));
- QProfileDto builtInProfile = db.qualityProfiles().insert(org3, p -> p.setIsBuiltIn(true).setLanguage("java").setName("foo"));
- QProfileDto differentLanguage = db.qualityProfiles().insert(org1, p -> p.setIsBuiltIn(false).setLanguage("cobol").setName("foo"));
- QProfileDto differentName = db.qualityProfiles().insert(org1, p -> p.setIsBuiltIn(false).setLanguage("java").setName("bar"));
+ QProfileDto outdatedProfile1 = db.qualityProfiles().insert(p -> p.setIsBuiltIn(false).setLanguage("java").setName("foo"));
+ QProfileDto differentLanguage = db.qualityProfiles().insert(p -> p.setIsBuiltIn(false).setLanguage("cobol").setName("foo"));
+ QProfileDto differentName = db.qualityProfiles().insert(p -> p.setIsBuiltIn(false).setLanguage("java").setName("bar"));
Collection<String> keys = underTest.selectUuidsOfCustomRulesProfiles(dbSession, "java", "foo");
-
- assertThat(keys).containsExactlyInAnyOrder(outdatedProfile1.getRulesProfileUuid(), outdatedProfile2.getRulesProfileUuid());
+ assertThat(keys).containsOnly(outdatedProfile1.getRulesProfileUuid());
}
@Test
@@ -849,22 +792,18 @@ public class QualityProfileDaoTest {
@Test
public void renameAndCommit_updates_name_of_specified_profiles() {
OrganizationDto org1 = db.organizations().insert();
- OrganizationDto org2 = db.organizations().insert();
- QProfileDto fooInOrg1 = db.qualityProfiles().insert(org1, p -> p.setName("foo"));
- QProfileDto fooInOrg2 = db.qualityProfiles().insert(org2, p -> p.setName("foo"));
- QProfileDto bar = db.qualityProfiles().insert(org1, p -> p.setName("bar"));
+ QProfileDto fooInOrg1 = db.qualityProfiles().insert(p -> p.setName("foo"));
+ QProfileDto bar = db.qualityProfiles().insert(p -> p.setName("bar"));
- underTest.renameRulesProfilesAndCommit(dbSession, asList(fooInOrg1.getRulesProfileUuid(), fooInOrg2.getRulesProfileUuid()), "foo (copy)");
+ underTest.renameRulesProfilesAndCommit(dbSession, asList(fooInOrg1.getRulesProfileUuid()), "foo (copy)");
assertThat(underTest.selectOrFailByUuid(dbSession, fooInOrg1.getKee()).getName()).isEqualTo("foo (copy)");
- assertThat(underTest.selectOrFailByUuid(dbSession, fooInOrg2.getKee()).getName()).isEqualTo("foo (copy)");
assertThat(underTest.selectOrFailByUuid(dbSession, bar.getKee()).getName()).isEqualTo("bar");
}
@Test
public void renameAndCommit_does_nothing_if_empty_keys() {
- OrganizationDto org = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(org, p -> p.setName("foo"));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setName("foo"));
underTest.renameRulesProfilesAndCommit(dbSession, Collections.emptyList(), "foo (copy)");
@@ -873,25 +812,13 @@ public class QualityProfileDaoTest {
@Test
public void selectQProfilesByRuleProfileUuid() {
- OrganizationDto org1 = db.organizations().insert();
- OrganizationDto org2 = db.organizations().insert();
-
RulesProfileDto ruleProfile1 = QualityProfileTesting.newRuleProfileDto();
- OrgQProfileDto profile1InOrg1 = new OrgQProfileDto().setOrganizationUuid(org1.getUuid()).setRulesProfileUuid(ruleProfile1.getUuid()).setUuid(Uuids.create());
- OrgQProfileDto profile1InOrg2 = new OrgQProfileDto().setOrganizationUuid(org2.getUuid()).setRulesProfileUuid(ruleProfile1.getUuid()).setUuid(Uuids.create());
- RulesProfileDto ruleProfile2 = QualityProfileTesting.newRuleProfileDto();
- OrgQProfileDto profile2InOrg1 = new OrgQProfileDto().setOrganizationUuid(org1.getUuid()).setRulesProfileUuid(ruleProfile2.getUuid()).setUuid(Uuids.create());
+ OrgQProfileDto profile1InOrg1 = new OrgQProfileDto().setRulesProfileUuid(ruleProfile1.getUuid()).setUuid(Uuids.create());
db.getDbClient().qualityProfileDao().insert(db.getSession(), ruleProfile1);
db.getDbClient().qualityProfileDao().insert(db.getSession(), profile1InOrg1);
- db.getDbClient().qualityProfileDao().insert(db.getSession(), profile1InOrg2);
- db.getDbClient().qualityProfileDao().insert(db.getSession(), ruleProfile2);
- db.getDbClient().qualityProfileDao().insert(db.getSession(), profile2InOrg1);
List<QProfileDto> result = db.getDbClient().qualityProfileDao().selectQProfilesByRuleProfile(db.getSession(), ruleProfile1);
- assertThat(result).extracting(QProfileDto::getKee).containsExactlyInAnyOrder(profile1InOrg1.getUuid(), profile1InOrg2.getUuid());
-
- result = db.getDbClient().qualityProfileDao().selectQProfilesByRuleProfile(db.getSession(), ruleProfile2);
- assertThat(result).extracting(QProfileDto::getKee).containsExactlyInAnyOrder(profile2InOrg1.getUuid());
+ assertThat(result).extracting(QProfileDto::getKee).containsExactlyInAnyOrder(profile1InOrg1.getUuid());
}
@Test
@@ -905,7 +832,6 @@ public class QualityProfileDaoTest {
QProfileDto dto1 = new QProfileDto()
.setKee("java_sonar_way")
.setRulesProfileUuid("rp-java_sonar_way")
- .setOrganizationUuid(organization.getUuid())
.setName("Sonar Way")
.setLanguage("java")
.setLastUsed(1_000L)
@@ -917,7 +843,6 @@ public class QualityProfileDaoTest {
QProfileDto dto2 = new QProfileDto()
.setKee("js_sonar_way")
.setRulesProfileUuid("rp-js_sonar_way")
- .setOrganizationUuid(organization.getUuid())
.setName("Sonar Way")
.setLanguage("js")
.setLastUsed(1_000L)
@@ -926,10 +851,6 @@ public class QualityProfileDaoTest {
.setIsBuiltIn(true);
underTest.insert(dbSession, dto2);
- DefaultQProfileDto defaultQProfileDto = new DefaultQProfileDto()
- .setQProfileUuid(dto1.getKee())
- .setLanguage(dto1.getLanguage())
- .setOrganizationUuid(organization.getUuid());
db.getDbClient().defaultQProfileDao().insertOrUpdate(dbSession, DefaultQProfileDto.from(dto1));
return Arrays.asList(dto1, dto2);
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QualityProfileExportDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QualityProfileExportDaoTest.java
index e1133e84e37..e682253e503 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QualityProfileExportDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/qualityprofile/QualityProfileExportDaoTest.java
@@ -75,15 +75,12 @@ public class QualityProfileExportDaoTest {
RuleDefinitionDto customRule = createRule(language, RuleStatus.READY, ruleTemplate.getUuid());
RuleMetadataDto customRuleMetadata = createRuleMetadata(new RuleMetadataDto()
.setRuleUuid(customRule.getUuid())
- .setOrganizationUuid(db.getDefaultOrganization().getUuid())
.setNoteData("Extended description")
.setTags(Sets.newHashSet("tag1", "tag2", "tag3")));
RuleDefinitionDto rule = createRule(language, RuleStatus.READY, null);
RuleMetadataDto ruleMetadata = createRuleMetadata(new RuleMetadataDto()
- .setRuleUuid(rule.getUuid())
- .setOrganizationUuid(db.getDefaultOrganization().getUuid()));
-
+ .setRuleUuid(rule.getUuid()));
QProfileDto profile = createProfile(language);
List<ActiveRuleDto> activeRules = activate(profile, customRule, rule);
@@ -225,7 +222,7 @@ public class QualityProfileExportDaoTest {
}
private QProfileDto createProfile(String lanugage) {
- return db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(lanugage));
+ return db.qualityProfiles().insert(p -> p.setLanguage(lanugage));
}
private List<ActiveRuleDto> activate(QProfileDto profile, RuleDefinitionDto... rules) {
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
index e5b8035ce44..0f45bb7f4db 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
@@ -29,7 +29,6 @@ import java.util.Set;
import java.util.function.Consumer;
import org.apache.ibatis.exceptions.PersistenceException;
import org.apache.ibatis.session.ResultHandler;
-import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -43,9 +42,6 @@ import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.System2;
import org.sonar.db.DbTester;
import org.sonar.db.RowNotFoundException;
-import org.sonar.db.es.RuleExtensionId;
-import org.sonar.db.organization.OrganizationDto;
-import org.sonar.db.organization.OrganizationTesting;
import org.sonar.db.rule.RuleDto.Scope;
import static com.google.common.collect.Sets.newHashSet;
@@ -59,8 +55,6 @@ import static org.sonar.api.rule.RuleStatus.REMOVED;
import static org.sonar.db.rule.RuleTesting.newRuleMetadata;
public class RuleDaoTest {
-
- private static final String ORGANIZATION_UUID = "org-1";
private static final String UNKNOWN_RULE_UUID = "unknown-uuid";
@Rule
@@ -69,58 +63,35 @@ public class RuleDaoTest {
public DbTester db = DbTester.create(System2.INSTANCE);
private RuleDao underTest = db.getDbClient().ruleDao();
- private OrganizationDto organization;
-
- @Before
- public void before() {
- organization = db.organizations().insert(o -> o.setUuid(ORGANIZATION_UUID));
- }
@Test
public void selectByKey() {
RuleDefinitionDto ruleDefinition = db.rules().insert();
- OrganizationDto organization = db.organizations().insert();
- RuleMetadataDto metadata = newRuleMetadata(ruleDefinition, organization);
+ RuleMetadataDto metadata = newRuleMetadata(ruleDefinition);
db.rules().insertRule(ruleDefinition, metadata);
- assertThat(underTest.selectByKey(db.getSession(), organization.getUuid(), RuleKey.of("foo", "bar")))
+ assertThat(underTest.selectByKey(db.getSession(), RuleKey.of("foo", "bar")))
.isEmpty();
- RuleDto rule = underTest.selectByKey(db.getSession(), organization.getUuid(), ruleDefinition.getKey()).get();
+ RuleDto rule = underTest.selectByKey(db.getSession(), ruleDefinition.getKey()).get();
assertEquals(rule.getDefinition(), ruleDefinition);
- verifyMetadata(rule.getMetadata(), ruleDefinition, metadata);
+ verifyMetadata(rule.getMetadata(), metadata);
}
@Test
- public void selectByKey_return_rule_even_if_organization_does_not_exist() {
+ public void selectByKey_return_rule() {
RuleDefinitionDto ruleDefinition = db.rules().insert();
- assertThat(underTest.selectByKey(db.getSession(), OrganizationTesting.newOrganizationDto().getUuid(), ruleDefinition.getKey()))
- .isNotEmpty();
+ assertThat(underTest.selectByKey(db.getSession(), ruleDefinition.getKey())).isNotEmpty();
}
@Test
- public void selectByKey_populates_organizationUuid_even_when_organization_has_no_metadata() {
- OrganizationDto organization = db.organizations().insert();
+ public void selectByKey_returns_metadata() {
RuleDefinitionDto ruleDefinition = db.rules().insert();
+ RuleMetadataDto ruleMetadata = newRuleMetadata(ruleDefinition);
+ db.rules().insertRule(ruleDefinition, ruleMetadata);
- RuleDto rule = underTest.selectByKey(db.getSession(), organization.getUuid(), ruleDefinition.getKey()).get();
- verifyNoMetadata(rule.getMetadata(), organization);
- }
-
- @Test
- public void selectByKey_returns_metadata_of_specified_organization() {
- RuleDefinitionDto ruleDefinition = db.rules().insert();
- OrganizationDto organization1 = db.organizations().insert();
- RuleMetadataDto expectedOrg1 = newRuleMetadata(ruleDefinition, organization1);
- db.rules().insertRule(ruleDefinition, expectedOrg1);
- OrganizationDto organization2 = db.organizations().insert();
- RuleMetadataDto expectedOrg2 = newRuleMetadata(ruleDefinition, organization2);
- db.rules().insertRule(ruleDefinition, expectedOrg2);
-
- RuleDto rule = underTest.selectByKey(db.getSession(), organization1.getUuid(), ruleDefinition.getKey()).get();
- verifyMetadata(rule.getMetadata(), ruleDefinition, expectedOrg1);
- rule = underTest.selectByKey(db.getSession(), organization2.getUuid(), ruleDefinition.getKey()).get();
- verifyMetadata(rule.getMetadata(), ruleDefinition, expectedOrg2);
+ RuleDto rule = underTest.selectByKey(db.getSession(), ruleDefinition.getKey()).get();
+ verifyMetadata(rule.getMetadata(), ruleMetadata);
}
@Test
@@ -136,48 +107,14 @@ public class RuleDaoTest {
@Test
public void selectByUuid() {
RuleDefinitionDto ruleDefinition = db.rules().insert();
- OrganizationDto organization = db.organizations().insert();
- RuleMetadataDto metadata = newRuleMetadata(ruleDefinition, organization);
+ RuleMetadataDto metadata = newRuleMetadata(ruleDefinition);
RuleDto expected = db.rules().insertRule(ruleDefinition, metadata);
- assertThat(underTest.selectByUuid(expected.getUuid() + 500, organization.getUuid(), db.getSession()))
+ assertThat(underTest.selectByUuid(expected.getUuid() + 500, db.getSession()))
.isEmpty();
- RuleDto rule = underTest.selectByUuid(expected.getUuid(), organization.getUuid(), db.getSession()).get();
+ RuleDto rule = underTest.selectByUuid(expected.getUuid(), db.getSession()).get();
assertEquals(rule.getDefinition(), ruleDefinition);
- verifyMetadata(rule.getMetadata(), ruleDefinition, metadata);
- }
-
- @Test
- public void selectByUuid_return_rule_even_if_organization_does_not_exist() {
- RuleDefinitionDto ruleDefinition = db.rules().insert();
-
- assertThat(underTest.selectByUuid(ruleDefinition.getUuid(), "dfdfdf", db.getSession()))
- .isNotEmpty();
- }
-
- @Test
- public void selectByUuid_populates_organizationUuid_even_when_organization_has_no_metadata() {
- OrganizationDto organization = db.organizations().insert();
- RuleDefinitionDto ruleDefinition = db.rules().insert();
-
- RuleDto rule = underTest.selectByUuid(ruleDefinition.getUuid(), organization.getUuid(), db.getSession()).get();
- verifyNoMetadata(rule.getMetadata(), organization);
- }
-
- @Test
- public void selectByUuid_returns_metadata_of_specified_organization() {
- RuleDefinitionDto ruleDefinition = db.rules().insert();
- OrganizationDto organization1 = db.organizations().insert();
- RuleMetadataDto expectedOrg1 = newRuleMetadata(ruleDefinition, organization1);
- db.rules().insertRule(ruleDefinition, expectedOrg1);
- OrganizationDto organization2 = db.organizations().insert();
- RuleMetadataDto expectedOrg2 = newRuleMetadata(ruleDefinition, organization2);
- db.rules().insertRule(ruleDefinition, expectedOrg2);
-
- RuleDto rule = underTest.selectByUuid(ruleDefinition.getUuid(), organization1.getUuid(), db.getSession()).get();
- verifyMetadata(rule.getMetadata(), ruleDefinition, expectedOrg1);
- rule = underTest.selectByUuid(ruleDefinition.getUuid(), organization2.getUuid(), db.getSession()).get();
- verifyMetadata(rule.getMetadata(), ruleDefinition, expectedOrg2);
+ verifyMetadata(rule.getMetadata(), metadata);
}
@Test
@@ -191,30 +128,18 @@ public class RuleDaoTest {
@Test
public void selectByUuids() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule1 = db.rules().insert();
- db.rules().insertOrUpdateMetadata(rule1, organization);
+ db.rules().insertOrUpdateMetadata(rule1);
RuleDefinitionDto rule2 = db.rules().insert();
- db.rules().insertOrUpdateMetadata(rule2, organization);
+ db.rules().insertOrUpdateMetadata(rule2);
RuleDefinitionDto removedRule = db.rules().insert(r -> r.setStatus(REMOVED));
- db.rules().insertOrUpdateMetadata(removedRule, organization);
-
- assertThat(underTest.selectByUuids(db.getSession(), organization.getUuid(), singletonList(rule1.getUuid()))).hasSize(1);
- assertThat(underTest.selectByUuids(db.getSession(), organization.getUuid(), asList(rule1.getUuid(), rule2.getUuid()))).hasSize(2);
- assertThat(underTest.selectByUuids(db.getSession(), organization.getUuid(), asList(rule1.getUuid(), rule2.getUuid(), UNKNOWN_RULE_UUID))).hasSize(2);
- assertThat(underTest.selectByUuids(db.getSession(), organization.getUuid(), asList(rule1.getUuid(), rule2.getUuid(), removedRule.getUuid()))).hasSize(3);
- assertThat(underTest.selectByUuids(db.getSession(), organization.getUuid(), singletonList(UNKNOWN_RULE_UUID))).isEmpty();
- }
-
- @Test
- public void selectByUuids_populates_organizationUuid_even_when_organization_has_no_metadata() {
- OrganizationDto organization = db.organizations().insert();
- RuleDefinitionDto rule1 = db.rules().insert();
- RuleDefinitionDto rule2 = db.rules().insert();
+ db.rules().insertOrUpdateMetadata(removedRule);
- assertThat(underTest.selectByUuids(db.getSession(), organization.getUuid(), asList(rule1.getUuid(), rule2.getUuid())))
- .extracting(RuleDto::getOrganizationUuid)
- .containsExactly(organization.getUuid(), organization.getUuid());
+ assertThat(underTest.selectByUuids(db.getSession(), singletonList(rule1.getUuid()))).hasSize(1);
+ assertThat(underTest.selectByUuids(db.getSession(), asList(rule1.getUuid(), rule2.getUuid()))).hasSize(2);
+ assertThat(underTest.selectByUuids(db.getSession(), asList(rule1.getUuid(), rule2.getUuid(), UNKNOWN_RULE_UUID))).hasSize(2);
+ assertThat(underTest.selectByUuids(db.getSession(), asList(rule1.getUuid(), rule2.getUuid(), removedRule.getUuid()))).hasSize(3);
+ assertThat(underTest.selectByUuids(db.getSession(), singletonList(UNKNOWN_RULE_UUID))).isEmpty();
}
@Test
@@ -230,31 +155,19 @@ public class RuleDaoTest {
@Test
public void selectOrFailByKey() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule1 = db.rules().insert();
db.rules().insert();
- RuleDto rule = underTest.selectOrFailByKey(db.getSession(), organization, rule1.getKey());
+ RuleDto rule = underTest.selectOrFailByKey(db.getSession(), rule1.getKey());
assertThat(rule.getUuid()).isEqualTo(rule1.getUuid());
}
@Test
public void selectOrFailByKey_fails_if_rule_not_found() {
- OrganizationDto organization = db.organizations().insert();
-
thrown.expect(RowNotFoundException.class);
thrown.expectMessage("Rule with key 'NOT:FOUND' does not exist");
- underTest.selectOrFailByKey(db.getSession(), organization, RuleKey.of("NOT", "FOUND"));
- }
-
- @Test
- public void selectOrFailByKey_populates_organizationUuid_even_when_organization_has_no_metadata() {
- OrganizationDto organization = db.organizations().insert();
- RuleDefinitionDto rule = db.rules().insert();
-
- assertThat(underTest.selectOrFailByKey(db.getSession(), organization, rule.getKey()).getOrganizationUuid())
- .isEqualTo(organization.getUuid());
+ underTest.selectOrFailByKey(db.getSession(), RuleKey.of("NOT", "FOUND"));
}
@Test
@@ -267,31 +180,20 @@ public class RuleDaoTest {
@Test
public void selectByKeys() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule1 = db.rules().insert();
- db.rules().insertOrUpdateMetadata(rule1, organization);
+ db.rules().insertOrUpdateMetadata(rule1);
RuleDefinitionDto rule2 = db.rules().insert();
- db.rules().insertOrUpdateMetadata(rule2, organization);
+ db.rules().insertOrUpdateMetadata(rule2);
- assertThat(underTest.selectByKeys(db.getSession(), organization.getUuid(), Collections.emptyList())).isEmpty();
- assertThat(underTest.selectByKeys(db.getSession(), organization.getUuid(), singletonList(RuleKey.of("NOT", "FOUND")))).isEmpty();
+ assertThat(underTest.selectByKeys(db.getSession(), Collections.emptyList())).isEmpty();
+ assertThat(underTest.selectByKeys(db.getSession(), singletonList(RuleKey.of("NOT", "FOUND")))).isEmpty();
- List<RuleDto> rules = underTest.selectByKeys(db.getSession(), organization.getUuid(), asList(rule1.getKey(), RuleKey.of("java", "OTHER")));
+ List<RuleDto> rules = underTest.selectByKeys(db.getSession(), asList(rule1.getKey(), RuleKey.of("java", "OTHER")));
assertThat(rules).hasSize(1);
assertThat(rules.get(0).getUuid()).isEqualTo(rule1.getUuid());
}
@Test
- public void selectByKeys_populates_organizationUuid_even_when_organization_has_no_metadata() {
- OrganizationDto organization = db.organizations().insert();
- RuleDefinitionDto rule = db.rules().insert();
-
- assertThat(underTest.selectByKeys(db.getSession(), organization.getUuid(), singletonList(rule.getKey())))
- .extracting(RuleDto::getOrganizationUuid)
- .containsExactly(organization.getUuid());
- }
-
- @Test
public void selectDefinitionByKeys() {
RuleDefinitionDto rule = db.rules().insert();
@@ -305,53 +207,25 @@ public class RuleDaoTest {
@Test
public void selectAll() {
- OrganizationDto organization = db.organizations().insert();
- RuleDto rule1 = db.rules().insertRule(organization);
- RuleDto rule2 = db.rules().insertRule(organization);
- RuleDto rule3 = db.rules().insertRule(organization);
-
- assertThat(underTest.selectAll(db.getSession(), organization.getUuid()))
- .extracting(RuleDto::getUuid)
- .containsOnly(rule1.getUuid(), rule2.getUuid(), rule3.getUuid());
- }
-
- @Test
- public void selectAll_returns_all_rules_even_if_organization_does_not_exist() {
- RuleDefinitionDto rule1 = db.rules().insert();
- RuleDefinitionDto rule2 = db.rules().insert();
- RuleDefinitionDto rule3 = db.rules().insert();
+ RuleDto rule1 = db.rules().insertRule();
+ RuleDto rule2 = db.rules().insertRule();
+ RuleDto rule3 = db.rules().insertRule();
- assertThat(underTest.selectAll(db.getSession(), "dfdfdf"))
+ assertThat(underTest.selectAll(db.getSession()))
.extracting(RuleDto::getUuid)
.containsOnly(rule1.getUuid(), rule2.getUuid(), rule3.getUuid());
}
@Test
- public void selectAll_populates_organizationUuid_even_when_organization_has_no_metadata() {
- OrganizationDto organization = db.organizations().insert();
- RuleDefinitionDto ruleDefinition1 = db.rules().insert();
- RuleDefinitionDto ruleDefinition2 = db.rules().insert();
-
- List<RuleDto> rules = underTest.selectAll(db.getSession(), organization.getUuid());
- assertThat(rules)
- .extracting(RuleDto::getUuid)
- .containsOnly(ruleDefinition1.getUuid(), ruleDefinition2.getUuid());
- assertThat(rules)
- .extracting(RuleDto::getOrganizationUuid)
- .containsExactly(organization.getUuid(), organization.getUuid());
- }
-
- @Test
- public void selectAll_returns_metadata_of_specified_organization() {
+ public void selectAll_returns_metadata() {
RuleDefinitionDto ruleDefinition = db.rules().insert();
- OrganizationDto organization = db.organizations().insert();
- RuleMetadataDto expected = newRuleMetadata(ruleDefinition, organization);
+ RuleMetadataDto expected = newRuleMetadata(ruleDefinition);
db.rules().insertRule(ruleDefinition, expected);
- List<RuleDto> rules = underTest.selectAll(db.getSession(), organization.getUuid());
+ List<RuleDto> rules = underTest.selectAll(db.getSession());
assertThat(rules).hasSize(1);
- verifyMetadata(rules.iterator().next().getMetadata(), ruleDefinition, expected);
+ verifyMetadata(rules.iterator().next().getMetadata(), expected);
}
private void assertEquals(RuleDefinitionDto actual, RuleDefinitionDto expected) {
@@ -379,8 +253,7 @@ public class RuleDaoTest {
assertThat(actual.getType()).isEqualTo(expected.getType());
}
- private static void verifyMetadata(RuleMetadataDto metadata, RuleDefinitionDto ruleDefinition, RuleMetadataDto expected) {
- assertThat(metadata.getOrganizationUuid()).isEqualTo(expected.getOrganizationUuid());
+ private static void verifyMetadata(RuleMetadataDto metadata, RuleMetadataDto expected) {
assertThat(metadata.getRemediationBaseEffort()).isEqualTo(expected.getRemediationBaseEffort());
assertThat(metadata.getRemediationFunction()).isEqualTo(expected.getRemediationFunction());
assertThat(metadata.getRemediationGapMultiplier()).isEqualTo(expected.getRemediationGapMultiplier());
@@ -394,21 +267,6 @@ public class RuleDaoTest {
assertThat(metadata.getAdHocType()).isEqualTo(expected.getAdHocType());
}
- private static void verifyNoMetadata(RuleMetadataDto metadata, OrganizationDto organization) {
- assertThat(metadata.getOrganizationUuid()).isEqualTo(organization.getUuid());
- assertThat(metadata.getRemediationBaseEffort()).isNull();
- assertThat(metadata.getRemediationFunction()).isNull();
- assertThat(metadata.getRemediationGapMultiplier()).isNull();
- assertThat(metadata.getTags()).isEmpty();
- assertThat(metadata.getNoteData()).isNull();
- assertThat(metadata.getNoteCreatedAt()).isNull();
- assertThat(metadata.getNoteUpdatedAt()).isNull();
- assertThat(metadata.getAdHocName()).isNull();
- assertThat(metadata.getAdHocDescription()).isNull();
- assertThat(metadata.getAdHocSeverity()).isNull();
- assertThat(metadata.getAdHocType()).isNull();
- }
-
@Test
public void selectAllDefinitions() {
RuleDefinitionDto rule1 = db.rules().insert();
@@ -436,157 +294,122 @@ public class RuleDaoTest {
@Test
public void selectByTypeAndLanguages() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto organization2 = db.organizations().insert();
-
RuleDefinitionDto rule1 = db.rules().insert(
r -> r.setKey(RuleKey.of("java", "S001"))
.setConfigKey("S1")
.setType(RuleType.VULNERABILITY)
.setLanguage("java"));
- db.rules().insertOrUpdateMetadata(rule1, organization);
+ db.rules().insertOrUpdateMetadata(rule1);
RuleDefinitionDto rule2 = db.rules().insert(
r -> r.setKey(RuleKey.of("js", "S002"))
.setType(RuleType.SECURITY_HOTSPOT)
.setLanguage("js"));
- db.rules().insertOrUpdateMetadata(rule2, organization);
+ db.rules().insertOrUpdateMetadata(rule2);
- assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization.getUuid(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("java")))
- .extracting(RuleDto::getOrganizationUuid, RuleDto::getUuid, RuleDto::getLanguage, RuleDto::getType)
- .containsExactly(tuple(organization.getUuid(), rule1.getUuid(), "java", RuleType.VULNERABILITY.getDbConstant()));
+ assertThat(underTest.selectByTypeAndLanguages(db.getSession(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("java")))
+ .extracting(RuleDto::getUuid, RuleDto::getLanguage, RuleDto::getType)
+ .containsExactly(tuple(rule1.getUuid(), "java", RuleType.VULNERABILITY.getDbConstant()));
- // Rule available also on organization2
- assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization2.getUuid(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("java")))
- .extracting(RuleDto::getOrganizationUuid, RuleDto::getUuid, RuleDto::getLanguage, RuleDto::getType)
- .containsExactly(tuple(organization2.getUuid(), rule1.getUuid(), "java", RuleType.VULNERABILITY.getDbConstant()));
+ assertThat(underTest.selectByTypeAndLanguages(db.getSession(), singletonList(RuleType.SECURITY_HOTSPOT.getDbConstant()), singletonList("js")))
+ .extracting(RuleDto::getUuid, RuleDto::getLanguage, RuleDto::getType)
+ .containsExactly(tuple(rule2.getUuid(), "js", RuleType.SECURITY_HOTSPOT.getDbConstant()));
- assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization.getUuid(), singletonList(RuleType.SECURITY_HOTSPOT.getDbConstant()), singletonList("js")))
- .extracting(RuleDto::getOrganizationUuid, RuleDto::getUuid, RuleDto::getLanguage, RuleDto::getType)
- .containsExactly(tuple(organization.getUuid(), rule2.getUuid(), "js", RuleType.SECURITY_HOTSPOT.getDbConstant()));
-
- // Rule available also on organization2
- assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization2.getUuid(), singletonList(RuleType.SECURITY_HOTSPOT.getDbConstant()), singletonList("js")))
- .extracting(RuleDto::getOrganizationUuid, RuleDto::getUuid, RuleDto::getLanguage, RuleDto::getType)
- .containsExactly(tuple(organization2.getUuid(), rule2.getUuid(), "js", RuleType.SECURITY_HOTSPOT.getDbConstant()));
-
- assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization.getUuid(), singletonList(RuleType.SECURITY_HOTSPOT.getDbConstant()), singletonList("java")))
- .isEmpty();
- assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization.getUuid(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("js")))
- .isEmpty();
+ assertThat(underTest.selectByTypeAndLanguages(db.getSession(), singletonList(RuleType.SECURITY_HOTSPOT.getDbConstant()), singletonList("java"))).isEmpty();
+ assertThat(underTest.selectByTypeAndLanguages(db.getSession(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("js"))).isEmpty();
}
@Test
public void selectByTypeAndLanguages_return_nothing_when_no_rule_on_languages() {
- OrganizationDto organization = db.organizations().insert();
-
RuleDefinitionDto rule1 = db.rules().insert(
r -> r.setKey(RuleKey.of("java", "S001"))
.setConfigKey("S1")
.setType(RuleType.VULNERABILITY)
.setLanguage("java"));
- db.rules().insertOrUpdateMetadata(rule1, organization);
+ db.rules().insertOrUpdateMetadata(rule1);
RuleDefinitionDto rule2 = db.rules().insert(
r -> r.setKey(RuleKey.of("js", "S002"))
.setType(RuleType.VULNERABILITY)
.setLanguage("js"));
- db.rules().insertOrUpdateMetadata(rule2, organization);
+ db.rules().insertOrUpdateMetadata(rule2);
- assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization.getUuid(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("cpp")))
+ assertThat(underTest.selectByTypeAndLanguages(db.getSession(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("cpp")))
.isEmpty();
}
@Test
public void selectByTypeAndLanguages_return_nothing_when_no_rule_with_type() {
- OrganizationDto organization = db.organizations().insert();
-
RuleDefinitionDto rule1 = db.rules().insert(
r -> r.setKey(RuleKey.of("java", "S001"))
.setConfigKey("S1")
.setType(RuleType.VULNERABILITY)
.setLanguage("java"));
- db.rules().insertOrUpdateMetadata(rule1, organization);
+ db.rules().insertOrUpdateMetadata(rule1);
RuleDefinitionDto rule2 = db.rules().insert(
r -> r.setKey(RuleKey.of("java", "S002"))
.setType(RuleType.SECURITY_HOTSPOT)
.setLanguage("java"));
- db.rules().insertOrUpdateMetadata(rule2, organization);
+ db.rules().insertOrUpdateMetadata(rule2);
RuleDefinitionDto rule3 = db.rules().insert(
r -> r.setKey(RuleKey.of("java", "S003"))
.setType(RuleType.CODE_SMELL)
.setLanguage("java"));
- db.rules().insertOrUpdateMetadata(rule3, organization);
+ db.rules().insertOrUpdateMetadata(rule3);
- assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization.getUuid(), singletonList(RuleType.BUG.getDbConstant()), singletonList("java")))
+ assertThat(underTest.selectByTypeAndLanguages(db.getSession(), singletonList(RuleType.BUG.getDbConstant()), singletonList("java")))
.isEmpty();
}
@Test
public void selectByTypeAndLanguages_ignores_external_rules() {
- OrganizationDto organization = db.organizations().insert();
-
RuleDefinitionDto rule1 = db.rules().insert(
r -> r.setKey(RuleKey.of("java", "S001"))
.setConfigKey("S1")
.setType(RuleType.VULNERABILITY)
.setIsExternal(true)
.setLanguage("java"));
- db.rules().insertOrUpdateMetadata(rule1, organization);
+ db.rules().insertOrUpdateMetadata(rule1);
- assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization.getUuid(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("java")))
- .extracting(RuleDto::getOrganizationUuid, RuleDto::getUuid, RuleDto::getLanguage, RuleDto::getType)
+ assertThat(underTest.selectByTypeAndLanguages(db.getSession(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("java")))
+ .extracting(RuleDto::getUuid, RuleDto::getLanguage, RuleDto::getType)
.isEmpty();
}
@Test
public void selectByTypeAndLanguages_ignores_template_rules() {
- OrganizationDto organization = db.organizations().insert();
-
RuleDefinitionDto rule1 = db.rules().insert(
r -> r.setKey(RuleKey.of("java", "S001"))
.setConfigKey("S1")
.setType(RuleType.VULNERABILITY)
.setIsTemplate(true)
.setLanguage("java"));
- db.rules().insertOrUpdateMetadata(rule1, organization);
+ db.rules().insertOrUpdateMetadata(rule1);
- assertThat(underTest.selectByTypeAndLanguages(db.getSession(), organization.getUuid(), singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("java")))
- .extracting(RuleDto::getOrganizationUuid, RuleDto::getUuid, RuleDto::getLanguage, RuleDto::getType)
+ assertThat(underTest.selectByTypeAndLanguages(db.getSession(),singletonList(RuleType.VULNERABILITY.getDbConstant()), singletonList("java")))
+ .extracting( RuleDto::getUuid, RuleDto::getLanguage, RuleDto::getType)
.isEmpty();
}
@Test
public void select_by_query() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule1 = db.rules().insert(r -> r.setKey(RuleKey.of("java", "S001")).setConfigKey("S1"));
- db.rules().insertOrUpdateMetadata(rule1, organization);
+ db.rules().insertOrUpdateMetadata(rule1);
RuleDefinitionDto rule2 = db.rules().insert(r -> r.setKey(RuleKey.of("java", "S002")));
- db.rules().insertOrUpdateMetadata(rule2, organization);
+ db.rules().insertOrUpdateMetadata(rule2);
RuleDefinitionDto removedRule = db.rules().insert(r -> r.setStatus(REMOVED));
- assertThat(underTest.selectByQuery(db.getSession(), organization.getUuid(), RuleQuery.create())).hasSize(2);
- assertThat(underTest.selectByQuery(db.getSession(), organization.getUuid(), RuleQuery.create().withKey("S001"))).hasSize(1);
- assertThat(underTest.selectByQuery(db.getSession(), organization.getUuid(), RuleQuery.create().withConfigKey("S1"))).hasSize(1);
- assertThat(underTest.selectByQuery(db.getSession(), organization.getUuid(), RuleQuery.create().withRepositoryKey("java"))).hasSize(2);
- assertThat(underTest.selectByQuery(db.getSession(), organization.getUuid(),
+ assertThat(underTest.selectByQuery(db.getSession(), RuleQuery.create())).hasSize(2);
+ assertThat(underTest.selectByQuery(db.getSession(), RuleQuery.create().withKey("S001"))).hasSize(1);
+ assertThat(underTest.selectByQuery(db.getSession(), RuleQuery.create().withConfigKey("S1"))).hasSize(1);
+ assertThat(underTest.selectByQuery(db.getSession(), RuleQuery.create().withRepositoryKey("java"))).hasSize(2);
+ assertThat(underTest.selectByQuery(db.getSession(),
RuleQuery.create().withKey("S001").withConfigKey("S1").withRepositoryKey("java"))).hasSize(1);
}
@Test
- public void select_by_query_populates_organizationUuid_even_when_organization_has_no_metadata() {
- OrganizationDto organization = db.organizations().insert();
- db.rules().insert();
- db.rules().insert();
-
- assertThat(underTest.selectByQuery(db.getSession(), organization.getUuid(), RuleQuery.create()))
- .extracting(RuleDto::getOrganizationUuid)
- .containsExactly(organization.getUuid(), organization.getUuid());
- }
-
- @Test
public void insert() {
RuleDefinitionDto newRule = new RuleDefinitionDto()
.setUuid("rule-uuid")
@@ -703,11 +526,9 @@ public class RuleDaoTest {
@Test
public void update_RuleMetadataDto_inserts_row_in_RULE_METADATA_if_not_exists_yet() {
RuleDefinitionDto rule = db.rules().insert();
- String organizationUuid = "org-1";
RuleMetadataDto metadataToUpdate = new RuleMetadataDto()
.setRuleUuid(rule.getUuid())
- .setOrganizationUuid(organizationUuid)
.setNoteData("My note")
.setNoteUserUuid("admin")
.setNoteCreatedAt(DateUtils.parseDate("2013-12-19").getTime())
@@ -726,8 +547,7 @@ public class RuleDaoTest {
underTest.insertOrUpdate(db.getSession(), metadataToUpdate);
db.getSession().commit();
- OrganizationDto organization = OrganizationTesting.newOrganizationDto().setUuid(organizationUuid);
- RuleDto ruleDto = underTest.selectOrFailByKey(db.getSession(), organization, rule.getKey());
+ RuleDto ruleDto = underTest.selectOrFailByKey(db.getSession(), rule.getKey());
assertThat(ruleDto.getNoteData()).isEqualTo("My note");
assertThat(ruleDto.getNoteUserUuid()).isEqualTo("admin");
assertThat(ruleDto.getNoteCreatedAt()).isNotNull();
@@ -755,16 +575,12 @@ public class RuleDaoTest {
@Test
public void update_RuleMetadataDto_updates_row_in_RULE_METADATA_if_already_exists() {
RuleDefinitionDto rule = db.rules().insert();
- String organizationUuid = "org-1";
- OrganizationDto organization = OrganizationTesting.newOrganizationDto().setUuid(organizationUuid);
RuleMetadataDto metadataV1 = new RuleMetadataDto()
.setRuleUuid(rule.getUuid())
- .setOrganizationUuid(organizationUuid)
.setCreatedAt(3_500_000_000_000L)
.setUpdatedAt(4_000_000_000_000L);
RuleMetadataDto metadataV2 = new RuleMetadataDto()
.setRuleUuid(rule.getUuid())
- .setOrganizationUuid(organizationUuid)
.setNoteData("My note")
.setNoteUserUuid("admin")
.setNoteCreatedAt(DateUtils.parseDate("2013-12-19").getTime())
@@ -784,7 +600,7 @@ public class RuleDaoTest {
db.commit();
assertThat(db.countRowsOfTable("RULES_METADATA")).isEqualTo(1);
- RuleDto ruleDto = underTest.selectOrFailByKey(db.getSession(), organization, rule.getKey());
+ RuleDto ruleDto = underTest.selectOrFailByKey(db.getSession(), rule.getKey());
assertThat(ruleDto.getNoteData()).isNull();
assertThat(ruleDto.getNoteUserUuid()).isNull();
assertThat(ruleDto.getNoteCreatedAt()).isNull();
@@ -804,7 +620,7 @@ public class RuleDaoTest {
underTest.insertOrUpdate(db.getSession(), metadataV2);
db.commit();
- ruleDto = underTest.selectOrFailByKey(db.getSession(), organization, rule.getKey());
+ ruleDto = underTest.selectOrFailByKey(db.getSession(), rule.getKey());
assertThat(ruleDto.getNoteData()).isEqualTo("My note");
assertThat(ruleDto.getNoteUserUuid()).isEqualTo("admin");
assertThat(ruleDto.getNoteCreatedAt()).isNotNull();
@@ -1058,41 +874,19 @@ public class RuleDaoTest {
}
@Test
- public void scrollIndexingRuleExtensions() {
- Accumulator<RuleExtensionForIndexingDto> accumulator = new Accumulator<>();
- RuleDefinitionDto r1 = db.rules().insert();
- RuleMetadataDto r1Extension = db.rules().insertOrUpdateMetadata(r1, organization, r -> r.setTagsField("t1,t2"));
- RuleDefinitionDto r2 = db.rules().insert();
- RuleMetadataDto r2Extension = db.rules().insertOrUpdateMetadata(r2, organization, r -> r.setTagsField("t1,t3"));
-
- underTest.scrollIndexingRuleExtensions(db.getSession(), accumulator);
-
- assertThat(accumulator.list)
- .extracting(RuleExtensionForIndexingDto::getRuleUuid,
- RuleExtensionForIndexingDto::getRuleKey,
- RuleExtensionForIndexingDto::getOrganizationUuid, RuleExtensionForIndexingDto::getTags)
- .containsExactlyInAnyOrder(
- tuple(r1.getUuid(), r1.getKey(), organization.getUuid(), r1Extension.getTagsAsString()),
- tuple(r2.getUuid(), r2.getKey(), organization.getUuid(), r2Extension.getTagsAsString()));
- }
-
- @Test
public void scrollIndexingRuleExtensionsByIds() {
Accumulator<RuleExtensionForIndexingDto> accumulator = new Accumulator<>();
RuleDefinitionDto r1 = db.rules().insert();
- RuleMetadataDto r1Extension = db.rules().insertOrUpdateMetadata(r1, organization, r -> r.setTagsField("t1,t2"));
- RuleExtensionId r1ExtensionId = new RuleExtensionId(organization.getUuid(), r1.getUuid());
+ RuleMetadataDto r1Extension = db.rules().insertOrUpdateMetadata(r1, r -> r.setTagsField("t1,t2"));
RuleDefinitionDto r2 = db.rules().insert();
- db.rules().insertOrUpdateMetadata(r2, organization, r -> r.setTagsField("t1,t3"));
+ db.rules().insertOrUpdateMetadata(r2, r -> r.setTagsField("t1,t3"));
- underTest.scrollIndexingRuleExtensionsByIds(db.getSession(), singletonList(r1ExtensionId), accumulator);
+ underTest.scrollIndexingRuleExtensionsByIds(db.getSession(), singletonList(r1.getUuid()), accumulator);
assertThat(accumulator.list)
- .extracting(RuleExtensionForIndexingDto::getRuleUuid,
- RuleExtensionForIndexingDto::getRuleKey,
- RuleExtensionForIndexingDto::getOrganizationUuid, RuleExtensionForIndexingDto::getTags)
+ .extracting(RuleExtensionForIndexingDto::getRuleUuid, RuleExtensionForIndexingDto::getRuleKey, RuleExtensionForIndexingDto::getTags)
.containsExactlyInAnyOrder(
- tuple(r1.getUuid(), r1.getKey(), organization.getUuid(), r1Extension.getTagsAsString()));
+ tuple(r1.getUuid(), r1.getKey(), r1Extension.getTagsAsString()));
}
@Test
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/webhook/WebhookDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/webhook/WebhookDaoTest.java
index 38e619a7a80..5d8b6eaea06 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/webhook/WebhookDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/webhook/WebhookDaoTest.java
@@ -49,7 +49,6 @@ public class WebhookDaoTest {
private final DbSession dbSession = dbTester.getSession();
private final WebhookDao underTest = dbClient.webhookDao();
private final WebhookDbTester webhookDbTester = dbTester.webhooks();
- private final WebhookDeliveryDbTester webhookDeliveryDbTester = dbTester.webhookDelivery();
private final ComponentDbTester componentDbTester = dbTester.components();
private final OrganizationDbTester organizationDbTester = dbTester.organizations();
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/ComponentDbTester.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/ComponentDbTester.java
index 8b3f6c50e89..8a7ca726cae 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/ComponentDbTester.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/component/ComponentDbTester.java
@@ -140,6 +140,12 @@ public class ComponentDbTester {
return getProjectDto(componentDto);
}
+ public ProjectDto insertPublicProjectDto(Consumer<ComponentDto> dtoPopulator) {
+ ComponentDto componentDto = insertPublicProject(dtoPopulator);
+ return getProjectDto(componentDto);
+ }
+
+
public final ProjectDto insertPublicProjectDto(OrganizationDto organization, Consumer<ComponentDto> dtoPopulator) {
ComponentDto componentDto = insertPublicProject(organization, dtoPopulator);
return getProjectDto(componentDto);
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/organization/OrganizationDbTester.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/organization/OrganizationDbTester.java
index 84e0afdf5fd..34356e1fbec 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/organization/OrganizationDbTester.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/organization/OrganizationDbTester.java
@@ -40,6 +40,10 @@ public class OrganizationDbTester {
this.db = db;
}
+ public OrganizationDto getDefaultOrganization() {
+ return db.getDefaultOrganization();
+ }
+
/**
* Insert an {@link OrganizationDto} and commit the session
*/
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualityprofile/QualityProfileDbTester.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualityprofile/QualityProfileDbTester.java
index 63be5801b23..71790bdea02 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualityprofile/QualityProfileDbTester.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualityprofile/QualityProfileDbTester.java
@@ -27,7 +27,6 @@ import org.sonar.core.util.Uuids;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.user.GroupDto;
@@ -41,10 +40,12 @@ import static org.sonar.db.qualityprofile.ActiveRuleDto.createFor;
public class QualityProfileDbTester {
private final DbClient dbClient;
private final DbSession dbSession;
+ private final DbTester dbTester;
public QualityProfileDbTester(DbTester dbTester) {
this.dbClient = dbTester.getDbClient();
this.dbSession = dbTester.getSession();
+ this.dbTester = dbTester;
}
public Optional<QProfileDto> selectByUuid(String uuid) {
@@ -54,17 +55,17 @@ public class QualityProfileDbTester {
/**
* Create a profile with random field values on the specified organization.
*/
- public QProfileDto insert(OrganizationDto organization) {
- return insert(organization, c -> {
+ public QProfileDto insert() {
+ return insert(c -> {
});
}
+
/**
- * Create a profile with random field values on the specified organization.
+ * Create a profile with random field values
*/
- public QProfileDto insert(OrganizationDto organization, Consumer<QProfileDto> consumer) {
- QProfileDto profile = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization.getUuid());
+ public QProfileDto insert(Consumer<QProfileDto> consumer) {
+ QProfileDto profile = QualityProfileTesting.newQualityProfileDto();
consumer.accept(profile);
dbClient.qualityProfileDao().insert(dbSession, profile);
@@ -107,7 +108,7 @@ public class QualityProfileDbTester {
public QualityProfileDbTester setAsDefault(QProfileDto profile, QProfileDto... others) {
dbClient.defaultQProfileDao().insertOrUpdate(dbSession, DefaultQProfileDto.from(profile));
for (QProfileDto other : others) {
- dbClient.defaultQProfileDao().insertOrUpdate(dbSession, DefaultQProfileDto.from(other));
+ dbClient.defaultQProfileDao().insertOrUpdate(dbSession, DefaultQProfileDto.from( other));
}
dbSession.commit();
return this;
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualityprofile/QualityProfileTesting.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualityprofile/QualityProfileTesting.java
index 2df3eef2984..7590b1901e6 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualityprofile/QualityProfileTesting.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/qualityprofile/QualityProfileTesting.java
@@ -41,7 +41,6 @@ public class QualityProfileTesting {
return new QProfileDto()
.setKee(uuid)
.setRulesProfileUuid(Uuids.createFast())
- .setOrganizationUuid(randomAlphanumeric(40))
.setName(uuid)
.setLanguage(randomAlphanumeric(20))
.setLastUsed(nextLong());
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleDbTester.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleDbTester.java
index c97a88fd380..83eb32a043d 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleDbTester.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleDbTester.java
@@ -129,15 +129,15 @@ public class RuleDbTester {
}
@SafeVarargs
- public final RuleMetadataDto insertOrUpdateMetadata(RuleDefinitionDto rule, OrganizationDto organization, Consumer<RuleMetadataDto>... populaters) {
- RuleMetadataDto dto = RuleTesting.newRuleMetadata(rule, organization);
+ public final RuleMetadataDto insertOrUpdateMetadata(RuleDefinitionDto rule, Consumer<RuleMetadataDto>... populaters) {
+ RuleMetadataDto dto = RuleTesting.newRuleMetadata(rule);
asList(populaters).forEach(populater -> populater.accept(dto));
return insertOrUpdateMetadata(dto);
}
@SafeVarargs
- public final RuleMetadataDto insertOrUpdateMetadata(RuleDefinitionDto rule, UserDto noteUser, OrganizationDto organization, Consumer<RuleMetadataDto>... populaters) {
- RuleMetadataDto dto = RuleTesting.newRuleMetadata(rule, noteUser, organization);
+ public final RuleMetadataDto insertOrUpdateMetadata(RuleDefinitionDto rule, UserDto noteUser, Consumer<RuleMetadataDto>... populaters) {
+ RuleMetadataDto dto = RuleTesting.newRuleMetadata(rule, noteUser);
asList(populaters).forEach(populater -> populater.accept(dto));
return insertOrUpdateMetadata(dto);
}
@@ -169,10 +169,8 @@ public class RuleDbTester {
insert(ruleDto.getDefinition());
RuleMetadataDto metadata = ruleDto.getMetadata();
- if (metadata.getOrganizationUuid() != null) {
- db.getDbClient().ruleDao().insertOrUpdate(db.getSession(), metadata.setRuleUuid(ruleDto.getUuid()));
- db.commit();
- }
+ db.getDbClient().ruleDao().insertOrUpdate(db.getSession(), metadata.setRuleUuid(ruleDto.getUuid()));
+ db.commit();
return ruleDto;
}
@@ -185,8 +183,8 @@ public class RuleDbTester {
}
@SafeVarargs
- public final RuleDto insertRule(OrganizationDto organization, Consumer<RuleDto>... populaters) {
- RuleDto ruleDto = newRuleDto(organization);
+ public final RuleDto insertRule(Consumer<RuleDto>... populaters) {
+ RuleDto ruleDto = newRuleDto();
asList(populaters).forEach(populater -> populater.accept(ruleDto));
return insertRule(ruleDto);
}
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleTesting.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleTesting.java
index 56c70c72080..fbe81281289 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleTesting.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleTesting.java
@@ -95,7 +95,6 @@ public class RuleTesting {
public static RuleMetadataDto newRuleMetadata() {
return new RuleMetadataDto()
.setRuleUuid("uuid_" + randomAlphanumeric(5))
- .setOrganizationUuid("org_" + randomAlphanumeric(5))
.setRemediationBaseEffort(nextInt(10) + "h")
.setRemediationGapMultiplier(nextInt(10) + "h")
.setRemediationFunction("LINEAR_OFFSET")
@@ -112,15 +111,13 @@ public class RuleTesting {
.setUpdatedAt(System.currentTimeMillis() - 50);
}
- public static RuleMetadataDto newRuleMetadata(RuleDefinitionDto rule, OrganizationDto organization) {
+ public static RuleMetadataDto newRuleMetadata(RuleDefinitionDto rule) {
return newRuleMetadata()
- .setRuleUuid(rule.getUuid())
- .setOrganizationUuid(organization.getUuid());
+ .setRuleUuid(rule.getUuid());
}
- public static RuleMetadataDto newRuleMetadata(RuleDefinitionDto rule, UserDto noteUser, OrganizationDto organization) {
- return newRuleMetadata(rule, organization)
- .setNoteUserUuid(noteUser.getUuid());
+ public static RuleMetadataDto newRuleMetadata(RuleDefinitionDto rule, UserDto noteUser) {
+ return newRuleMetadata(rule).setNoteUserUuid(noteUser.getUuid());
}
public static RuleParamDto newRuleParam(RuleDefinitionDto rule) {
@@ -153,14 +150,6 @@ public class RuleTesting {
* @deprecated use newRule(...)
*/
@Deprecated
- public static RuleDto newXooX1(OrganizationDto organization) {
- return newDto(XOO_X1, requireNonNull(organization, "organization can't be null")).setLanguage("xoo");
- }
-
- /**
- * @deprecated use newRule(...)
- */
- @Deprecated
public static RuleDto newXooX2() {
return newDto(XOO_X2).setLanguage("xoo");
}
@@ -169,14 +158,6 @@ public class RuleTesting {
* @deprecated use newRule(...)
*/
@Deprecated
- public static RuleDto newXooX2(OrganizationDto organization) {
- return newDto(XOO_X2, requireNonNull(organization, "organization can't be null")).setLanguage("xoo");
- }
-
- /**
- * @deprecated use newRule(...)
- */
- @Deprecated
public static RuleDto newXooX3() {
return newDto(XOO_X3).setLanguage("xoo");
}
@@ -185,23 +166,7 @@ public class RuleTesting {
* @deprecated use newRule(...)
*/
@Deprecated
- public static RuleDto newXooX3(OrganizationDto organization) {
- return newDto(XOO_X3, requireNonNull(organization, "organization can't be null")).setLanguage("xoo");
- }
-
- /**
- * @deprecated use newRule(...)
- */
- @Deprecated
public static RuleDto newDto(RuleKey ruleKey) {
- return newDto(ruleKey, null);
- }
-
- /**
- * @deprecated use newRule(...)
- */
- @Deprecated
- public static RuleDto newDto(RuleKey ruleKey, @Nullable OrganizationDto organization) {
RuleDto res = new RuleDto()
.setUuid("uuid_" + Uuids.createFast())
.setRuleKey(ruleKey.rule())
@@ -222,14 +187,11 @@ public class RuleTesting {
.setType(RuleType.CODE_SMELL)
.setCreatedAt(new Date().getTime())
.setUpdatedAt(new Date().getTime())
- .setScope(Scope.MAIN);
- if (organization != null) {
- res
- .setOrganizationUuid(organization.getUuid())
- .setTags(ImmutableSet.of("tag1", "tag2"))
- .setRemediationFunction("LINEAR")
- .setRemediationGapMultiplier("1h");
- }
+ .setScope(Scope.MAIN)
+ .setTags(ImmutableSet.of("tag1", "tag2"))
+ .setRemediationFunction("LINEAR")
+ .setRemediationGapMultiplier("1h");
+
return res;
}
@@ -241,24 +203,11 @@ public class RuleTesting {
return newDto(RuleKey.of(randomAlphanumeric(30), randomAlphanumeric(30)));
}
- /**
- * @deprecated use newRule(...)
- */
- @Deprecated
- public static RuleDto newRuleDto(OrganizationDto organization) {
- return newDto(RuleKey.of(randomAlphanumeric(30), randomAlphanumeric(30)), organization);
- }
-
public static RuleDto newTemplateRule(RuleKey ruleKey) {
return newDto(ruleKey)
.setIsTemplate(true);
}
- public static RuleDto newTemplateRule(RuleKey ruleKey, OrganizationDto organization) {
- return newDto(ruleKey, organization)
- .setIsTemplate(true);
- }
-
/**
* @deprecated use {@link #newCustomRule(RuleDefinitionDto)}
*/
@@ -343,10 +292,6 @@ public class RuleTesting {
return rule -> rule.setSystemTags(copyOf(tags));
}
- public static Consumer<RuleMetadataDto> setOrganization(OrganizationDto organization) {
- return rule -> rule.setOrganizationUuid(organization.getUuid());
- }
-
public static Consumer<RuleMetadataDto> setTags(String... tags) {
return rule -> rule.setTags(copyOf(tags));
}
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/user/UserDbTester.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/user/UserDbTester.java
index d3b3d4540e3..928651f904a 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/user/UserDbTester.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/user/UserDbTester.java
@@ -146,6 +146,11 @@ public class UserDbTester {
return insertGroup(group);
}
+ public GroupDto insertGroup(String name) {
+ GroupDto group = GroupTesting.newGroupDto().setName(name).setOrganizationUuid(db.getDefaultOrganization().getUuid());
+ return insertGroup(group);
+ }
+
/**
* Create group in default organization
*/
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfiles.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfiles.java
new file mode 100644
index 00000000000..5f0b04849b5
--- /dev/null
+++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfiles.java
@@ -0,0 +1,36 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 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.platform.db.migration.version.v85;
+
+import java.sql.SQLException;
+import org.sonar.db.Database;
+import org.sonar.server.platform.db.migration.step.DdlChange;
+import org.sonar.server.platform.db.migration.version.v84.util.AddPrimaryKeyBuilder;
+
+public class AddPrimaryKeyToDefaultQProfiles extends DdlChange {
+ public AddPrimaryKeyToDefaultQProfiles(Database db) {
+ super(db);
+ }
+
+ @Override
+ public void execute(Context context) throws SQLException {
+ context.execute(new AddPrimaryKeyBuilder("default_qprofiles", "language").build());
+ }
+}
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DbVersion85.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DbVersion85.java
index daeb281ea00..c11641605a6 100644
--- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DbVersion85.java
+++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DbVersion85.java
@@ -55,7 +55,11 @@ public class DbVersion85 implements DbVersion {
.add(4024, "Populate 'branch_type' in 'project_branches'", FillProjectBranchesBranchType.class)
.add(4025, "Make 'branch_type' in 'project_branches' not nullable", MakeProjectBranchesBranchTypeNotNullable.class)
.add(4026, "Drop column 'key_type' in table 'project_branches'", DropProjectBranchesKeyType.class)
-
+ .add(4027, "Drop organization_uuid from 'quality_profile' table", DropOrganizationFromQualityProfileTable.class)
+ .add(4028, "Drop primary key of table 'default_qprofiles'", DropDefaultQProfilesPk.class)
+ .add(4029, "Drop organization_uuid from 'default_qprofiles' table", DropOrganizationFromDefaultQProfiles.class)
+ .add(4030, "Add primary key to the table 'default_qprofiles", AddPrimaryKeyToDefaultQProfiles.class)
+ .add(4031, "Drop 'organization_uuid' in 'rules_metadata'", DropOrganizationInRulesMetadata.class)
;
}
}
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPk.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPk.java
new file mode 100644
index 00000000000..ac4e2746683
--- /dev/null
+++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPk.java
@@ -0,0 +1,36 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 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.platform.db.migration.version.v85;
+
+import java.sql.SQLException;
+import org.sonar.db.Database;
+import org.sonar.server.platform.db.migration.sql.DropConstraintBuilder;
+import org.sonar.server.platform.db.migration.step.DdlChange;
+
+public class DropDefaultQProfilesPk extends DdlChange {
+ public DropDefaultQProfilesPk(Database db) {
+ super(db);
+ }
+
+ @Override
+ public void execute(Context context) throws SQLException {
+ context.execute(new DropConstraintBuilder(getDialect()).setName("pk_default_qprofiles").setTable("default_qprofiles").build());
+ }
+}
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfiles.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfiles.java
new file mode 100644
index 00000000000..0c5fad100b8
--- /dev/null
+++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfiles.java
@@ -0,0 +1,36 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 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.platform.db.migration.version.v85;
+
+import java.sql.SQLException;
+import org.sonar.db.Database;
+import org.sonar.server.platform.db.migration.sql.DropColumnsBuilder;
+import org.sonar.server.platform.db.migration.step.DdlChange;
+
+public class DropOrganizationFromDefaultQProfiles extends DdlChange {
+ public DropOrganizationFromDefaultQProfiles(Database db) {
+ super(db);
+ }
+
+ @Override
+ public void execute(Context context) throws SQLException {
+ context.execute(new DropColumnsBuilder(getDialect(), "default_qprofiles", "organization_uuid").build());
+ }
+}
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTable.java
new file mode 100644
index 00000000000..441b1656976
--- /dev/null
+++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTable.java
@@ -0,0 +1,37 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 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.platform.db.migration.version.v85;
+
+import java.sql.SQLException;
+import org.sonar.db.Database;
+import org.sonar.server.platform.db.migration.sql.DropColumnsBuilder;
+import org.sonar.server.platform.db.migration.step.DdlChange;
+
+public class DropOrganizationFromQualityProfileTable extends DdlChange {
+
+ public DropOrganizationFromQualityProfileTable(Database db) {
+ super(db);
+ }
+
+ @Override
+ public void execute(Context context) throws SQLException {
+ context.execute(new DropColumnsBuilder(getDialect(), "org_qprofiles", "organization_uuid").build());
+ }
+}
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadata.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadata.java
new file mode 100644
index 00000000000..6348aad6123
--- /dev/null
+++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadata.java
@@ -0,0 +1,42 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 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.platform.db.migration.version.v85;
+
+import java.sql.SQLException;
+import org.sonar.db.Database;
+import org.sonar.server.platform.db.migration.sql.DropColumnsBuilder;
+import org.sonar.server.platform.db.migration.sql.DropConstraintBuilder;
+import org.sonar.server.platform.db.migration.step.DdlChange;
+import org.sonar.server.platform.db.migration.version.v84.util.AddPrimaryKeyBuilder;
+
+public class DropOrganizationInRulesMetadata extends DdlChange {
+ private static final String TABLE_NAME = "rules_metadata";
+
+ public DropOrganizationInRulesMetadata(Database db) {
+ super(db);
+ }
+
+ @Override
+ public void execute(Context context) throws SQLException {
+ context.execute(new DropConstraintBuilder(getDialect()).setName("pk_rules_metadata").setTable(TABLE_NAME).build());
+ context.execute(new DropColumnsBuilder(getDialect(), TABLE_NAME, "organization_uuid").build());
+ context.execute(new AddPrimaryKeyBuilder(TABLE_NAME, "rule_uuid").build());
+ }
+}
diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfilesTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfilesTest.java
new file mode 100644
index 00000000000..bb5e8e7b52e
--- /dev/null
+++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfilesTest.java
@@ -0,0 +1,40 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 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.platform.db.migration.version.v85;
+
+import java.sql.SQLException;
+import org.junit.Rule;
+import org.junit.Test;
+import org.sonar.db.CoreDbTester;
+import org.sonar.server.platform.db.migration.step.MigrationStep;
+
+public class AddPrimaryKeyToDefaultQProfilesTest {
+ @Rule
+ public CoreDbTester db = CoreDbTester.createForSchema(AddPrimaryKeyToDefaultQProfilesTest.class, "schema.sql");
+
+ private MigrationStep underTest = new AddPrimaryKeyToDefaultQProfiles(db.database());
+
+ @Test
+ public void execute() throws SQLException {
+ db.assertNoPrimaryKey("default_qprofiles");
+ underTest.execute();
+ db.assertPrimaryKey("default_qprofiles", "pk_default_qprofiles", "language");
+ }
+}
diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPkTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPkTest.java
new file mode 100644
index 00000000000..7070feb72d2
--- /dev/null
+++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPkTest.java
@@ -0,0 +1,41 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 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.platform.db.migration.version.v85;
+
+import java.sql.SQLException;
+import org.junit.Rule;
+import org.junit.Test;
+import org.sonar.db.CoreDbTester;
+import org.sonar.server.platform.db.migration.step.MigrationStep;
+
+public class DropDefaultQProfilesPkTest {
+ @Rule
+ public CoreDbTester db = CoreDbTester.createForSchema(DropDefaultQProfilesPkTest.class, "schema.sql");
+
+ private MigrationStep underTest = new DropDefaultQProfilesPk(db.database());
+
+ @Test
+ public void execute() throws SQLException {
+ db.assertPrimaryKey("default_qprofiles", "pk_default_qprofiles", "organization_uuid", "language");
+
+ underTest.execute();
+ db.assertNoPrimaryKey("default_qprofiles");
+ }
+}
diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfilesTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfilesTest.java
new file mode 100644
index 00000000000..00b40ce7164
--- /dev/null
+++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfilesTest.java
@@ -0,0 +1,41 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 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.platform.db.migration.version.v85;
+
+import java.sql.SQLException;
+import java.sql.Types;
+import org.junit.Rule;
+import org.junit.Test;
+import org.sonar.db.CoreDbTester;
+import org.sonar.server.platform.db.migration.step.MigrationStep;
+
+public class DropOrganizationFromDefaultQProfilesTest {
+ @Rule
+ public CoreDbTester db = CoreDbTester.createForSchema(DropOrganizationFromDefaultQProfilesTest.class, "schema.sql");
+
+ private MigrationStep underTest = new DropOrganizationFromDefaultQProfiles(db.database());
+
+ @Test
+ public void execute() throws SQLException {
+ db.assertColumnDefinition("default_qprofiles", "organization_uuid", Types.VARCHAR, 40, false);
+ underTest.execute();
+ db.assertColumnDoesNotExist("default_qprofiles", "organization_uuid");
+ }
+}
diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTableTest.java
new file mode 100644
index 00000000000..27471cbe8c6
--- /dev/null
+++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTableTest.java
@@ -0,0 +1,40 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 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.platform.db.migration.version.v85;
+
+import java.sql.SQLException;
+import org.junit.Rule;
+import org.junit.Test;
+import org.sonar.db.CoreDbTester;
+
+public class DropOrganizationFromQualityProfileTableTest {
+
+ @Rule
+ public CoreDbTester dbTester = CoreDbTester.createForSchema(DropOrganizationFromQualityProfileTableTest.class, "schema.sql");
+
+ private DropOrganizationFromQualityProfileTable underTest = new DropOrganizationFromQualityProfileTable(dbTester.database());
+
+ @Test
+ public void column_has_been_dropped() throws SQLException {
+ underTest.execute();
+ dbTester.assertColumnDoesNotExist("org_qprofiles", "organization_uuid");
+ }
+
+}
diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadataTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadataTest.java
new file mode 100644
index 00000000000..6cf2e7c7b80
--- /dev/null
+++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadataTest.java
@@ -0,0 +1,40 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 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.platform.db.migration.version.v85;
+
+import java.sql.SQLException;
+import org.junit.Rule;
+import org.junit.Test;
+import org.sonar.db.CoreDbTester;
+import org.sonar.server.platform.db.migration.step.MigrationStep;
+
+public class DropOrganizationInRulesMetadataTest {
+ @Rule
+ public CoreDbTester dbTester = CoreDbTester.createForSchema(DropOrganizationInRulesMetadataTest.class, "schema.sql");
+
+ private MigrationStep underTest = new DropOrganizationInRulesMetadata(dbTester.database());
+
+ @Test
+ public void column_has_been_dropped() throws SQLException {
+ underTest.execute();
+ dbTester.assertColumnDoesNotExist("rules_metadata", "organization_uuid");
+ dbTester.assertPrimaryKey("rules_metadata", "pk_rules_metadata", "rule_uuid");
+ }
+}
diff --git a/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfilesTest/schema.sql b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfilesTest/schema.sql
new file mode 100644
index 00000000000..6e5205d8d1f
--- /dev/null
+++ b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/AddPrimaryKeyToDefaultQProfilesTest/schema.sql
@@ -0,0 +1,7 @@
+CREATE TABLE "DEFAULT_QPROFILES"(
+ "LANGUAGE" VARCHAR(20) NOT NULL,
+ "QPROFILE_UUID" VARCHAR(255) NOT NULL,
+ "CREATED_AT" BIGINT NOT NULL,
+ "UPDATED_AT" BIGINT NOT NULL
+);
+CREATE UNIQUE INDEX "UNIQ_DEFAULT_QPROFILES_UUID" ON "DEFAULT_QPROFILES"("QPROFILE_UUID");
diff --git a/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPkTest/schema.sql b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPkTest/schema.sql
new file mode 100644
index 00000000000..85b059b64a1
--- /dev/null
+++ b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropDefaultQProfilesPkTest/schema.sql
@@ -0,0 +1,9 @@
+CREATE TABLE "DEFAULT_QPROFILES"(
+ "ORGANIZATION_UUID" VARCHAR(40) NOT NULL,
+ "LANGUAGE" VARCHAR(20) NOT NULL,
+ "QPROFILE_UUID" VARCHAR(255) NOT NULL,
+ "CREATED_AT" BIGINT NOT NULL,
+ "UPDATED_AT" BIGINT NOT NULL
+);
+ALTER TABLE "DEFAULT_QPROFILES" ADD CONSTRAINT "PK_DEFAULT_QPROFILES" PRIMARY KEY("ORGANIZATION_UUID", "LANGUAGE");
+CREATE UNIQUE INDEX "UNIQ_DEFAULT_QPROFILES_UUID" ON "DEFAULT_QPROFILES"("QPROFILE_UUID");
diff --git a/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfilesTest/schema.sql b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfilesTest/schema.sql
new file mode 100644
index 00000000000..c72d6748129
--- /dev/null
+++ b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromDefaultQProfilesTest/schema.sql
@@ -0,0 +1,8 @@
+CREATE TABLE "DEFAULT_QPROFILES"(
+ "ORGANIZATION_UUID" VARCHAR(40) NOT NULL,
+ "LANGUAGE" VARCHAR(20) NOT NULL,
+ "QPROFILE_UUID" VARCHAR(255) NOT NULL,
+ "CREATED_AT" BIGINT NOT NULL,
+ "UPDATED_AT" BIGINT NOT NULL
+);
+CREATE UNIQUE INDEX "UNIQ_DEFAULT_QPROFILES_UUID" ON "DEFAULT_QPROFILES"("QPROFILE_UUID");
diff --git a/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTableTest/schema.sql b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTableTest/schema.sql
new file mode 100644
index 00000000000..52373a8009a
--- /dev/null
+++ b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationFromQualityProfileTableTest/schema.sql
@@ -0,0 +1,14 @@
+CREATE TABLE "ORG_QPROFILES"(
+ "UUID" VARCHAR(255) NOT NULL,
+ "ORGANIZATION_UUID" VARCHAR(40) NOT NULL,
+ "RULES_PROFILE_UUID" VARCHAR(255) NOT NULL,
+ "PARENT_UUID" VARCHAR(255),
+ "LAST_USED" BIGINT,
+ "USER_UPDATED_AT" BIGINT,
+ "CREATED_AT" BIGINT NOT NULL,
+ "UPDATED_AT" BIGINT NOT NULL
+);
+ALTER TABLE "ORG_QPROFILES" ADD CONSTRAINT "PK_ORG_QPROFILES" PRIMARY KEY("UUID");
+CREATE INDEX "QPROFILES_ORG_UUID" ON "ORG_QPROFILES"("ORGANIZATION_UUID");
+CREATE INDEX "QPROFILES_RP_UUID" ON "ORG_QPROFILES"("RULES_PROFILE_UUID");
+CREATE INDEX "ORG_QPROFILES_PARENT_UUID" ON "ORG_QPROFILES"("PARENT_UUID");
diff --git a/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadataTest/schema.sql b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadataTest/schema.sql
new file mode 100644
index 00000000000..a7137424d38
--- /dev/null
+++ b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v85/DropOrganizationInRulesMetadataTest/schema.sql
@@ -0,0 +1,19 @@
+CREATE TABLE "RULES_METADATA"(
+ "ORGANIZATION_UUID" VARCHAR(40) NOT NULL,
+ "NOTE_DATA" CLOB,
+ "NOTE_USER_UUID" VARCHAR(255),
+ "NOTE_CREATED_AT" BIGINT,
+ "NOTE_UPDATED_AT" BIGINT,
+ "REMEDIATION_FUNCTION" VARCHAR(20),
+ "REMEDIATION_GAP_MULT" VARCHAR(20),
+ "REMEDIATION_BASE_EFFORT" VARCHAR(20),
+ "TAGS" VARCHAR(4000),
+ "AD_HOC_NAME" VARCHAR(200),
+ "AD_HOC_DESCRIPTION" CLOB,
+ "AD_HOC_SEVERITY" VARCHAR(10),
+ "AD_HOC_TYPE" TINYINT,
+ "CREATED_AT" BIGINT NOT NULL,
+ "UPDATED_AT" BIGINT NOT NULL,
+ "RULE_UUID" VARCHAR(40) NOT NULL
+);
+ALTER TABLE "RULES_METADATA" ADD CONSTRAINT "PK_RULES_METADATA" PRIMARY KEY("RULE_UUID", "ORGANIZATION_UUID");
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/es/BulkIndexer.java b/server/sonar-server-common/src/main/java/org/sonar/server/es/BulkIndexer.java
index 66afd4feda8..115887d2a7e 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/es/BulkIndexer.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/es/BulkIndexer.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable;
@@ -288,21 +289,12 @@ public class BulkIndexer {
return false;
}
BulkRequestKey that = (BulkRequestKey) o;
- if (!docType.equals(that.docType)) {
- return false;
- }
- if (!index.equals(that.index)) {
- return false;
- }
- return requestType.equals(that.requestType);
+ return Objects.equals(docType, that.docType) && Objects.equals(index, that.index) && Objects.equals(requestType, that.requestType);
}
@Override
public int hashCode() {
- int result = requestType.hashCode();
- result = 31 * result + index.hashCode();
- result = 31 * result + docType.hashCode();
- return result;
+ return Objects.hash(requestType, index, docType);
}
@Override
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/es/EsClient.java b/server/sonar-server-common/src/main/java/org/sonar/server/es/EsClient.java
index 903f8f4dca8..87d32d64f5a 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/es/EsClient.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/es/EsClient.java
@@ -126,7 +126,8 @@ public class EsClient implements Closeable {
return new ProxySearchRequestBuilder(nativeClient()).setIndices(index.getName());
}
- public SearchRequestBuilder prepareSearch(IndexMainType indexType) {
+ public SearchRequestBuilder
+ prepareSearch(IndexMainType indexType) {
return new ProxySearchRequestBuilder(nativeClient())
.setIndices(indexType.getIndex().getName())
.setTypes(indexType.getType());
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProviderImpl.java b/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProviderImpl.java
index 3b958ef838b..207913fe827 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProviderImpl.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProviderImpl.java
@@ -44,7 +44,7 @@ public class DefaultOrganizationProviderImpl implements DefaultOrganizationProvi
return cache;
}
- private static DefaultOrganization getDefaultOrganization(DbClient dbClient) {
+ public static DefaultOrganization getDefaultOrganization(DbClient dbClient) {
try (DbSession dbSession = dbClient.openSession(false)) {
Optional<String> uuid = dbClient.internalPropertiesDao().selectByKey(dbSession, InternalProperties.DEFAULT_ORGANIZATION);
checkState(uuid.isPresent() && !uuid.get().isEmpty(), "No Default organization uuid configured");
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/rule/DefaultRuleFinder.java b/server/sonar-server-common/src/main/java/org/sonar/server/rule/DefaultRuleFinder.java
index 1b4752ab9c4..ab64116df6a 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/rule/DefaultRuleFinder.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/rule/DefaultRuleFinder.java
@@ -54,12 +54,10 @@ public class DefaultRuleFinder implements ServerRuleFinder {
private final DbClient dbClient;
private final RuleDao ruleDao;
- private final DefaultOrganizationProvider defaultOrganizationProvider;
- public DefaultRuleFinder(DbClient dbClient, DefaultOrganizationProvider defaultOrganizationProvider) {
+ public DefaultRuleFinder(DbClient dbClient) {
this.dbClient = dbClient;
this.ruleDao = dbClient.ruleDao();
- this.defaultOrganizationProvider = defaultOrganizationProvider;
}
@Override
@@ -78,10 +76,7 @@ public class DefaultRuleFinder implements ServerRuleFinder {
@CheckForNull
public org.sonar.api.rules.Rule findByKey(RuleKey key) {
try (DbSession dbSession = dbClient.openSession(false)) {
- String defaultOrganizationUuid = defaultOrganizationProvider.get().getUuid();
- OrganizationDto defaultOrganization = dbClient.organizationDao().selectByUuid(dbSession, defaultOrganizationUuid)
- .orElseThrow(() -> new IllegalStateException(String.format("Cannot find default organization '%s'", defaultOrganizationUuid)));
- Optional<RuleDto> rule = ruleDao.selectByKey(dbSession, defaultOrganization.getUuid(), key);
+ Optional<RuleDto> rule = ruleDao.selectByKey(dbSession, key);
if (rule.isPresent() && rule.get().getStatus() != RuleStatus.REMOVED) {
return toRule(rule.get(), ruleDao.selectRuleParamsByRuleKey(dbSession, rule.get().getKey()));
} else {
@@ -99,7 +94,7 @@ public class DefaultRuleFinder implements ServerRuleFinder {
@Override
public final org.sonar.api.rules.Rule find(org.sonar.api.rules.RuleQuery query) {
try (DbSession dbSession = dbClient.openSession(false)) {
- List<RuleDto> rules = ruleDao.selectByQuery(dbSession, defaultOrganizationProvider.get().getUuid(), query);
+ List<RuleDto> rules = ruleDao.selectByQuery(dbSession, query);
if (!rules.isEmpty()) {
RuleDto rule = rules.get(0);
return toRule(rule, ruleDao.selectRuleParamsByRuleKey(dbSession, rule.getKey()));
@@ -111,7 +106,7 @@ public class DefaultRuleFinder implements ServerRuleFinder {
@Override
public final Collection<org.sonar.api.rules.Rule> findAll(org.sonar.api.rules.RuleQuery query) {
try (DbSession dbSession = dbClient.openSession(false)) {
- List<RuleDto> rules = ruleDao.selectByQuery(dbSession, defaultOrganizationProvider.get().getUuid(), query);
+ List<RuleDto> rules = ruleDao.selectByQuery(dbSession, query);
if (rules.isEmpty()) {
return Collections.emptyList();
}
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleDoc.java b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleDoc.java
index ab65bcb66b8..970f42b73c8 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleDoc.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleDoc.java
@@ -21,10 +21,12 @@ package org.sonar.server.rule.index;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
+import java.util.Set;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
@@ -196,6 +198,15 @@ public class RuleDoc extends BaseDoc {
return this;
}
+ public Set<String> getTags() {
+ return getField(RuleIndexDefinition.FIELD_RULE_TAGS);
+ }
+
+ public RuleDoc setTags(Set<String> tags) {
+ setField(RuleIndexDefinition.FIELD_RULE_TAGS, tags);
+ return this;
+ }
+
@CheckForNull
public RuleStatus status() {
return RuleStatus.valueOf(getField(RuleIndexDefinition.FIELD_RULE_STATUS));
@@ -287,6 +298,7 @@ public class RuleDoc extends BaseDoc {
.setStatus(dto.getStatus().toString())
.setType(dto.getTypeAsRuleType())
.setCreatedAt(dto.getCreatedAt())
+ .setTags(Sets.union(dto.getTags(), dto.getSystemTags()))
.setUpdatedAt(dto.getUpdatedAt());
if (dto.getTemplateRuleKey() != null && dto.getTemplateRepository() != null) {
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleExtensionDoc.java b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleExtensionDoc.java
deleted file mode 100644
index 361f9120c5c..00000000000
--- a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleExtensionDoc.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2020 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.rule.index;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import org.apache.commons.lang.builder.ReflectionToStringBuilder;
-import org.sonar.db.rule.RuleExtensionForIndexingDto;
-import org.sonar.db.rule.RuleForIndexingDto;
-import org.sonar.server.es.BaseDoc;
-
-import static org.sonar.server.rule.index.RuleIndexDefinition.TYPE_RULE_EXTENSION;
-
-public class RuleExtensionDoc extends BaseDoc {
-
- public RuleExtensionDoc(Map<String, Object> fields) {
- super(TYPE_RULE_EXTENSION, fields);
- }
-
- public RuleExtensionDoc() {
- super(TYPE_RULE_EXTENSION, new HashMap<>(4));
- }
-
- @Override
- public String getId() {
- return idOf(getRuleUuid(), getScope());
- }
-
- public String getRuleUuid() {
- return ruleUuidAsString();
- }
-
- private String ruleUuidAsString() {
- return getField(RuleIndexDefinition.FIELD_RULE_UUID);
- }
-
- public RuleExtensionDoc setRuleUuid(String ruleUuid) {
- String parent = ruleUuid;
- setField(RuleIndexDefinition.FIELD_RULE_UUID, parent);
- setParent(parent);
- return this;
- }
-
- public RuleExtensionScope getScope() {
- return RuleExtensionScope.parse(getField(RuleIndexDefinition.FIELD_RULE_EXTENSION_SCOPE));
- }
-
- public RuleExtensionDoc setScope(RuleExtensionScope scope) {
- setField(RuleIndexDefinition.FIELD_RULE_EXTENSION_SCOPE, scope.getScope());
- return this;
- }
-
- public Set<String> getTags() {
- return getField(RuleIndexDefinition.FIELD_RULE_EXTENSION_TAGS);
- }
-
- public RuleExtensionDoc setTags(Set<String> tags) {
- setField(RuleIndexDefinition.FIELD_RULE_EXTENSION_TAGS, tags);
- return this;
- }
-
- public static RuleExtensionDoc of(RuleForIndexingDto rule) {
- return new RuleExtensionDoc()
- .setRuleUuid(rule.getUuid())
- .setScope(RuleExtensionScope.system())
- .setTags(rule.getSystemTags());
- }
-
- public static RuleExtensionDoc of(RuleExtensionForIndexingDto rule) {
- return new RuleExtensionDoc()
- .setRuleUuid(rule.getRuleUuid())
- .setScope(RuleExtensionScope.organization(rule.getOrganizationUuid()))
- .setTags(rule.getTagsAsSet());
- }
-
- public static String idOf(String ruleUuid, RuleExtensionScope scope) {
- return ruleUuid + "|" + scope.getScope();
- }
-
- @Override
- public String toString() {
- return ReflectionToStringBuilder.toString(this);
- }
-}
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleExtensionScope.java b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleExtensionScope.java
deleted file mode 100644
index 919046bdf02..00000000000
--- a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleExtensionScope.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2020 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.rule.index;
-
-import java.util.Optional;
-import javax.annotation.Nullable;
-import org.sonar.db.organization.OrganizationDto;
-
-import static com.google.common.base.Preconditions.checkArgument;
-
-public class RuleExtensionScope {
-
- private static final String FAKE_UUID_FOR_SYSTEM = "system";
-
- private final Optional<String> organizationUuid;
-
- private RuleExtensionScope(@Nullable String organizationUuid) {
- this.organizationUuid = Optional.ofNullable(organizationUuid);
- }
-
- public static RuleExtensionScope system() {
- return new RuleExtensionScope(null);
- }
-
- public static RuleExtensionScope organization(OrganizationDto organization) {
- return organization(organization.getUuid());
- }
-
- public static RuleExtensionScope organization(String organizationUuid) {
- checkArgument(!FAKE_UUID_FOR_SYSTEM.equals(organizationUuid), "The organization uuid '%s' is reserved for to store system tags in the rules index.", FAKE_UUID_FOR_SYSTEM);
- return new RuleExtensionScope(organizationUuid);
- }
-
- public String getScope() {
- return organizationUuid.orElse(FAKE_UUID_FOR_SYSTEM);
- }
-
- public static RuleExtensionScope parse(String scope) {
- if (FAKE_UUID_FOR_SYSTEM.equals(scope)) {
- return system();
- }
- return new RuleExtensionScope(scope);
- }
-}
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndex.java b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndex.java
index fa61b365c6b..e30b69aed3c 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndex.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndex.java
@@ -20,7 +20,6 @@
package org.sonar.server.rule.index;
import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -39,14 +38,12 @@ import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.Operator;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.query.TermsQueryBuilder;
import org.elasticsearch.join.aggregations.JoinAggregationBuilders;
import org.elasticsearch.join.query.HasParentQueryBuilder;
import org.elasticsearch.join.query.JoinQueryBuilders;
import org.elasticsearch.search.aggregations.AggregationBuilder;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.BucketOrder;
-import org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder;
import org.elasticsearch.search.aggregations.bucket.terms.IncludeExclude;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.sort.FieldSortBuilder;
@@ -57,7 +54,6 @@ import org.sonar.api.rule.Severity;
import org.sonar.api.rules.RuleType;
import org.sonar.api.utils.System2;
import org.sonar.core.util.stream.MoreCollectors;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.es.EsClient;
import org.sonar.server.es.EsUtils;
@@ -93,8 +89,6 @@ import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_ACTIVE_RULE_
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_ACTIVE_RULE_SEVERITY;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_CREATED_AT;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_CWE;
-import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_EXTENSION_SCOPE;
-import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_EXTENSION_TAGS;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_HTML_DESCRIPTION;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_INTERNAL_KEY;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_IS_EXTERNAL;
@@ -109,12 +103,12 @@ import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_SANS_TO
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_SEVERITY;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_SONARSOURCE_SECURITY;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_STATUS;
+import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_TAGS;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_TEMPLATE_KEY;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_TYPE;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_RULE_UPDATED_AT;
import static org.sonar.server.rule.index.RuleIndexDefinition.TYPE_ACTIVE_RULE;
import static org.sonar.server.rule.index.RuleIndexDefinition.TYPE_RULE;
-import static org.sonar.server.rule.index.RuleIndexDefinition.TYPE_RULE_EXTENSION;
/**
* The unique entry-point to interact with Elasticsearch index "rules".
@@ -153,8 +147,7 @@ public class RuleIndex {
}
public SearchIdResult<String> search(RuleQuery query, SearchOptions options) {
- SearchRequestBuilder esSearch = client
- .prepareSearch(TYPE_RULE);
+ SearchRequestBuilder esSearch = client.prepareSearch(TYPE_RULE);
QueryBuilder qb = buildQuery(query);
Map<String, QueryBuilder> filters = buildFilters(query);
@@ -216,13 +209,13 @@ public class RuleIndex {
BoolQueryBuilder textQuery = boolQuery();
JavaTokenizer.split(queryString)
.stream().map(token -> boolQuery().should(
- matchQuery(
- SEARCH_GRAMS_ANALYZER.subField(FIELD_RULE_NAME),
- StringUtils.left(token, DefaultIndexSettings.MAXIMUM_NGRAM_LENGTH)).boost(20f))
- .should(
- matchPhraseQuery(
- ENGLISH_HTML_ANALYZER.subField(FIELD_RULE_HTML_DESCRIPTION),
- token).boost(3f)))
+ matchQuery(
+ SEARCH_GRAMS_ANALYZER.subField(FIELD_RULE_NAME),
+ StringUtils.left(token, DefaultIndexSettings.MAXIMUM_NGRAM_LENGTH)).boost(20f))
+ .should(
+ matchPhraseQuery(
+ ENGLISH_HTML_ANALYZER.subField(FIELD_RULE_HTML_DESCRIPTION),
+ token).boost(3f)))
.forEach(textQuery::must);
qb.should(textQuery.boost(20f));
}
@@ -316,8 +309,7 @@ public class RuleIndex {
}
if (isNotEmpty(query.getTags())) {
- filters.put(FIELD_RULE_EXTENSION_TAGS,
- buildTagsFilter(query.getTags(), query.getOrganization()));
+ filters.put(FIELD_RULE_TAGS, buildTagsFilter(query.getTags()));
}
Collection<RuleType> types = query.getTypes();
@@ -387,14 +379,11 @@ public class RuleIndex {
return filters;
}
- private static BoolQueryBuilder buildTagsFilter(Collection<String> tags, OrganizationDto organization) {
+ private static BoolQueryBuilder buildTagsFilter(Collection<String> tags) {
BoolQueryBuilder q = boolQuery();
- tags.stream()
- .map(tag -> boolQuery()
- .filter(QueryBuilders.termQuery(FIELD_RULE_EXTENSION_TAGS, tag))
- .filter(termsQuery(FIELD_RULE_EXTENSION_SCOPE, RuleExtensionScope.system().getScope(), RuleExtensionScope.organization(organization).getScope())))
- .map(childQuery -> JoinQueryBuilders.hasChildQuery(TYPE_RULE_EXTENSION.getName(), childQuery, ScoreMode.None))
- .forEach(q::should);
+ for (String tag : tags) {
+ q.should(boolQuery().filter(QueryBuilders.termQuery(FIELD_RULE_TAGS, tag)));
+ }
return q;
}
@@ -460,23 +449,8 @@ public class RuleIndex {
}
if (options.getFacets().contains(FACET_TAGS) || options.getFacets().contains(FACET_OLD_DEFAULT)) {
Collection<String> tags = query.getTags();
- checkArgument(query.getOrganization() != null, "Cannot use tags facet, if no organization is specified.", query.getTags());
-
- Function<TermsAggregationBuilder, AggregationBuilder> childFeature = termsAggregation -> {
-
- FilterAggregationBuilder scopeAggregation = AggregationBuilders.filter(
- "scope_filter_for_" + FACET_TAGS,
- termsQuery(FIELD_RULE_EXTENSION_SCOPE,
- RuleExtensionScope.system().getScope(),
- RuleExtensionScope.organization(query.getOrganization()).getScope()))
- .subAggregation(termsAggregation);
-
- return JoinAggregationBuilders.children("children_for_" + termsAggregation.getName(), TYPE_RULE_EXTENSION.getName())
- .subAggregation(scopeAggregation);
- };
-
aggregations.put(FACET_TAGS,
- stickyFacetBuilder.buildStickyFacet(FIELD_RULE_EXTENSION_TAGS, FACET_TAGS, MAX_FACET_SIZE, childFeature,
+ stickyFacetBuilder.buildStickyFacet(FIELD_RULE_TAGS, FACET_TAGS, MAX_FACET_SIZE,
(tags == null) ? (new String[0]) : tags.toArray()));
}
if (options.getFacets().contains(FACET_TYPES)) {
@@ -619,24 +593,15 @@ public class RuleIndex {
esSearch.setSize(options.getLimit());
}
- public List<String> listTags(@Nullable OrganizationDto organization, @Nullable String query, int size) {
+ public List<String> listTags(@Nullable String query, int size) {
int maxPageSize = 500;
checkArgument(size <= maxPageSize, "Page size must be lower than or equals to " + maxPageSize);
if (size <= 0) {
return emptyList();
}
- ImmutableList.Builder<String> scopes = ImmutableList.<String>builder()
- .add(RuleExtensionScope.system().getScope());
- if (organization != null) {
- scopes.add(RuleExtensionScope.organization(organization).getScope());
- }
- TermsQueryBuilder scopeFilter = QueryBuilders.termsQuery(
- FIELD_RULE_EXTENSION_SCOPE,
- scopes.build().toArray(new String[0]));
-
TermsAggregationBuilder termsAggregation = AggregationBuilders.terms(AGGREGATION_NAME_FOR_TAGS)
- .field(FIELD_RULE_EXTENSION_TAGS)
+ .field(FIELD_RULE_TAGS)
.size(size)
.order(BucketOrder.key(true))
.minDocCount(1);
@@ -647,8 +612,8 @@ public class RuleIndex {
.ifPresent(termsAggregation::includeExclude);
SearchRequestBuilder request = client
- .prepareSearch(TYPE_RULE_EXTENSION.getMainType())
- .setQuery(boolQuery().filter(scopeFilter))
+ .prepareSearch(TYPE_RULE.getMainType())
+ .setQuery(matchAllQuery())
.setSize(0)
.addAggregation(termsAggregation);
@@ -656,7 +621,7 @@ public class RuleIndex {
return EsUtils.termsKeys(esResponse.getAggregations().get(AGGREGATION_NAME_FOR_TAGS));
}
- private static boolean isNotEmpty(@Nullable Collection list) {
+ private static boolean isNotEmpty(@Nullable Collection<?> list) {
return list != null && !list.isEmpty();
}
}
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndexDefinition.java b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndexDefinition.java
index daf8a1a1cd0..e6893a77ca0 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndexDefinition.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndexDefinition.java
@@ -64,6 +64,7 @@ public class RuleIndexDefinition implements IndexDefinition {
public static final String FIELD_RULE_OWASP_TOP_10 = "owaspTop10";
public static final String FIELD_RULE_SANS_TOP_25 = "sansTop25";
public static final String FIELD_RULE_SONARSOURCE_SECURITY = "sonarsourceSecurity";
+ public static final String FIELD_RULE_TAGS = "tags";
public static final Set<String> SORT_FIELDS = ImmutableSet.of(
FIELD_RULE_NAME,
@@ -71,14 +72,6 @@ public class RuleIndexDefinition implements IndexDefinition {
FIELD_RULE_CREATED_AT,
FIELD_RULE_KEY);
- // Rule extension fields
- public static final IndexRelationType TYPE_RULE_EXTENSION = IndexType.relation(TYPE_RULE, "ruleExtension");
- /**
- * The uuid of a {@link RuleExtensionScope}
- */
- public static final String FIELD_RULE_EXTENSION_SCOPE = "ruleExt_scope";
- public static final String FIELD_RULE_EXTENSION_TAGS = "ruleExt_tags";
-
// Active rule fields
public static final IndexRelationType TYPE_ACTIVE_RULE = IndexType.relation(TYPE_RULE, "activeRule");
public static final String FIELD_ACTIVE_RULE_UUID = "activeRule_uuid";
@@ -137,6 +130,7 @@ public class RuleIndexDefinition implements IndexDefinition {
ruleMapping.keywordFieldBuilder(FIELD_RULE_SEVERITY).disableNorms().build();
ruleMapping.keywordFieldBuilder(FIELD_RULE_STATUS).disableNorms().build();
ruleMapping.keywordFieldBuilder(FIELD_RULE_LANGUAGE).disableNorms().build();
+ ruleMapping.keywordFieldBuilder(FIELD_RULE_TAGS).build();
ruleMapping.createBooleanField(FIELD_RULE_IS_TEMPLATE);
ruleMapping.createBooleanField(FIELD_RULE_IS_EXTERNAL);
@@ -158,10 +152,5 @@ public class RuleIndexDefinition implements IndexDefinition {
.keywordFieldBuilder(FIELD_ACTIVE_RULE_PROFILE_UUID).disableNorms().build()
.keywordFieldBuilder(FIELD_ACTIVE_RULE_INHERITANCE).disableNorms().build()
.keywordFieldBuilder(FIELD_ACTIVE_RULE_SEVERITY).disableNorms().build();
-
- // Rule extension
- index.createTypeMapping(TYPE_RULE_EXTENSION)
- .keywordFieldBuilder(FIELD_RULE_EXTENSION_SCOPE).disableNorms().build()
- .keywordFieldBuilder(FIELD_RULE_EXTENSION_TAGS).build();
}
}
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndexer.java b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndexer.java
index e7447d060f8..3ac59206b3c 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndexer.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleIndexer.java
@@ -33,8 +33,6 @@ import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.es.EsQueueDto;
-import org.sonar.db.es.RuleExtensionId;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleForIndexingDto;
import org.sonar.server.es.BulkIndexer;
import org.sonar.server.es.BulkIndexer.Size;
@@ -47,14 +45,11 @@ import org.sonar.server.es.ResilientIndexer;
import org.sonar.server.rule.HotspotRuleDescription;
import org.sonar.server.security.SecurityStandards;
-import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Arrays.asList;
-import static java.util.Collections.singletonList;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Stream.concat;
import static org.sonar.core.util.stream.MoreCollectors.toHashSet;
import static org.sonar.server.rule.index.RuleIndexDefinition.TYPE_RULE;
-import static org.sonar.server.rule.index.RuleIndexDefinition.TYPE_RULE_EXTENSION;
import static org.sonar.server.security.SecurityStandards.SQ_CATEGORY_KEYS_ORDERING;
public class RuleIndexer implements ResilientIndexer {
@@ -70,7 +65,7 @@ public class RuleIndexer implements ResilientIndexer {
@Override
public Set<IndexType> getIndexTypes() {
- return ImmutableSet.of(TYPE_RULE, TYPE_RULE_EXTENSION);
+ return ImmutableSet.of(TYPE_RULE);
}
@Override
@@ -79,27 +74,15 @@ public class RuleIndexer implements ResilientIndexer {
BulkIndexer bulk = createBulkIndexer(Size.LARGE, IndexingListener.FAIL_ON_ERROR);
bulk.start();
- // index all definitions and system extensions
+ // index all definitions
if (uninitializedIndexTypes.contains(TYPE_RULE)) {
- dbClient.ruleDao().scrollIndexingRules(dbSession, dto -> {
- bulk.add(ruleDocOf(dto).toIndexRequest());
- bulk.add(RuleExtensionDoc.of(dto).toIndexRequest());
- });
- }
-
- // index all organization extensions
- if (uninitializedIndexTypes.contains(TYPE_RULE_EXTENSION)) {
- dbClient.ruleDao().scrollIndexingRuleExtensions(dbSession, dto -> bulk.add(RuleExtensionDoc.of(dto).toIndexRequest()));
+ dbClient.ruleDao().scrollIndexingRules(dbSession, dto -> bulk.add(ruleDocOf(dto).toIndexRequest()));
}
bulk.stop();
}
}
- public void commitAndIndex(DbSession dbSession, String ruleUuid) {
- commitAndIndex(dbSession, singletonList(ruleUuid));
- }
-
public void commitAndIndex(DbSession dbSession, Collection<String> ruleUuids) {
List<EsQueueDto> items = ruleUuids.stream()
.map(RuleIndexer::createQueueDtoForRule)
@@ -113,8 +96,8 @@ public class RuleIndexer implements ResilientIndexer {
/**
* Commit a change on a rule and its extension on the given organization
*/
- public void commitAndIndex(DbSession dbSession, String ruleUuid, OrganizationDto organization) {
- List<EsQueueDto> items = asList(createQueueDtoForRule(ruleUuid), createQueueDtoForRuleExtension(ruleUuid, organization));
+ public void commitAndIndex(DbSession dbSession, String ruleUuid) {
+ List<EsQueueDto> items = asList(createQueueDtoForRule(ruleUuid));
dbClient.esQueueDao().insert(dbSession, items);
dbSession.commit();
postCommit(dbSession, items);
@@ -133,7 +116,6 @@ public class RuleIndexer implements ResilientIndexer {
if (!items.isEmpty()) {
ListMultimap<String, EsQueueDto> itemsByType = groupItemsByIndexTypeFormat(items);
doIndexRules(dbSession, itemsByType.get(TYPE_RULE.format())).ifPresent(result::add);
- doIndexRuleExtensions(dbSession, itemsByType.get(TYPE_RULE_EXTENSION.format())).ifPresent(result::add);
}
return result;
}
@@ -154,49 +136,17 @@ public class RuleIndexer implements ResilientIndexer {
dbClient.ruleDao().scrollIndexingRulesByKeys(dbSession, ruleUuids,
r -> {
bulkIndexer.add(ruleDocOf(r).toIndexRequest());
- bulkIndexer.add(RuleExtensionDoc.of(r).toIndexRequest());
ruleUuids.remove(r.getUuid());
});
- // the remaining items reference rows that don't exist in db. They must
- // be deleted from index.
+ // the remaining items reference rows that don't exist in db. They must be deleted from index.
ruleUuids.forEach(ruleUuid -> {
bulkIndexer.addDeletion(TYPE_RULE, ruleUuid, ruleUuid);
- bulkIndexer.addDeletion(TYPE_RULE_EXTENSION, RuleExtensionDoc.idOf(ruleUuid, RuleExtensionScope.system()), ruleUuid);
});
return Optional.of(bulkIndexer.stop());
}
- private Optional<IndexingResult> doIndexRuleExtensions(DbSession dbSession, List<EsQueueDto> items) {
- if (items.isEmpty()) {
- return Optional.empty();
- }
-
- BulkIndexer bulkIndexer = createBulkIndexer(Size.REGULAR, new OneToOneResilientIndexingListener(dbClient, dbSession, items));
- bulkIndexer.start();
-
- Set<RuleExtensionId> docIds = items
- .stream()
- .map(RuleIndexer::explodeRuleExtensionDocId)
- .collect(toHashSet(items.size()));
-
- dbClient.ruleDao().scrollIndexingRuleExtensionsByIds(dbSession, docIds,
- // only index requests, no deletion requests.
- // Deactivated users are not deleted but updated.
- r -> {
- RuleExtensionId docId = new RuleExtensionId(r.getOrganizationUuid(), r.getRuleUuid());
- docIds.remove(docId);
- bulkIndexer.add(RuleExtensionDoc.of(r).toIndexRequest());
- });
-
- // the remaining items reference rows that don't exist in db. They must
- // be deleted from index.
- docIds.forEach(docId -> bulkIndexer.addDeletion(TYPE_RULE_EXTENSION, docId.getId(), docId.getRuleUuid()));
-
- return Optional.of(bulkIndexer.stop());
- }
-
private static RuleDoc ruleDocOf(RuleForIndexingDto dto) {
SecurityStandards securityStandards = SecurityStandards.fromSecurityStandards(dto.getSecurityStandards());
if (!securityStandards.getIgnoredSQCategories().isEmpty()) {
@@ -234,19 +184,8 @@ public class RuleIndexer implements ResilientIndexer {
return items.stream().collect(MoreCollectors.index(EsQueueDto::getDocType));
}
- private static RuleExtensionId explodeRuleExtensionDocId(EsQueueDto esQueueDto) {
- checkArgument(TYPE_RULE_EXTENSION.format().equals(esQueueDto.getDocType()));
- return new RuleExtensionId(esQueueDto.getDocId());
- }
-
private static EsQueueDto createQueueDtoForRule(String ruleUuid) {
String docId = ruleUuid;
return EsQueueDto.create(TYPE_RULE.format(), docId, null, docId);
}
-
- private static EsQueueDto createQueueDtoForRuleExtension(String ruleUuid, OrganizationDto organization) {
- String docId = RuleExtensionDoc.idOf(ruleUuid, RuleExtensionScope.organization(organization));
- return EsQueueDto.create(TYPE_RULE_EXTENSION.format(), docId, null, ruleUuid);
- }
-
}
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleQuery.java b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleQuery.java
index 57f42918eec..fc5fefcfeab 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleQuery.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/rule/index/RuleQuery.java
@@ -53,7 +53,6 @@ public class RuleQuery {
private boolean ascendingSort = true;
private String internalKey;
private String ruleKey;
- private OrganizationDto organization;
private boolean includeExternal;
private Collection<String> owaspTop10;
private Collection<String> sansTop25;
@@ -279,15 +278,6 @@ public class RuleQuery {
return ruleKey;
}
- public OrganizationDto getOrganization() {
- return organization;
- }
-
- public RuleQuery setOrganization(OrganizationDto o) {
- this.organization = o;
- return this;
- }
-
@CheckForNull
public QProfileDto getCompareToQProfile() {
return compareToQProfile;
diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/qualityprofile/index/ActiveRuleIndexerTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/qualityprofile/index/ActiveRuleIndexerTest.java
index 58ae6cc54e2..a3e706a2308 100644
--- a/server/sonar-server-common/src/test/java/org/sonar/server/qualityprofile/index/ActiveRuleIndexerTest.java
+++ b/server/sonar-server-common/src/test/java/org/sonar/server/qualityprofile/index/ActiveRuleIndexerTest.java
@@ -30,7 +30,6 @@ import org.junit.Test;
import org.sonar.api.utils.System2;
import org.sonar.db.DbTester;
import org.sonar.db.es.EsQueueDto;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.rule.RuleDefinitionDto;
@@ -63,9 +62,8 @@ public class ActiveRuleIndexerTest {
public void before() {
rule1 = db.rules().insert();
rule2 = db.rules().insert();
- OrganizationDto org = db.organizations().insert();
- profile1 = db.qualityProfiles().insert(org);
- profile2 = db.qualityProfiles().insert(org);
+ profile1 = db.qualityProfiles().insert();
+ profile2 = db.qualityProfiles().insert();
}
@Test
diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/rule/DefaultRuleFinderTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/rule/DefaultRuleFinderTest.java
index b1d8498dee0..5769006c1f6 100644
--- a/server/sonar-server-common/src/test/java/org/sonar/server/rule/DefaultRuleFinderTest.java
+++ b/server/sonar-server-common/src/test/java/org/sonar/server/rule/DefaultRuleFinderTest.java
@@ -29,7 +29,6 @@ import org.sonar.api.utils.System2;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleDto.Scope;
@@ -46,7 +45,6 @@ public class DefaultRuleFinderTest {
private DbClient dbClient = dbTester.getDbClient();
private DbSession session = dbTester.getSession();
- private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(dbTester);
private RuleDto rule1 = new RuleDto()
.setName("Check Header")
@@ -84,7 +82,7 @@ public class DefaultRuleFinderTest {
.setScope(Scope.MAIN)
.setStatus(RuleStatus.READY);
- private DefaultRuleFinder underTest = new DefaultRuleFinder(dbClient, defaultOrganizationProvider);
+ private DefaultRuleFinder underTest = new DefaultRuleFinder(dbClient);
@Before
public void setup() {
@@ -131,8 +129,7 @@ public class DefaultRuleFinderTest {
public void findByKey_populates_system_tags_but_not_tags() {
RuleDefinitionDto ruleDefinition = dbTester.rules()
.insert(t -> t.setSystemTags(ImmutableSet.of(randomAlphanumeric(5), randomAlphanumeric(6))));
- OrganizationDto organization = dbTester.organizations().insert();
- dbTester.rules().insertRule(organization);
+ dbTester.rules().insertRule();
Rule rule = underTest.findByKey(ruleDefinition.getKey());
assertThat(rule.getSystemTags())
diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexDefinitionTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexDefinitionTest.java
index e123607d8e3..33cc879982a 100644
--- a/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexDefinitionTest.java
+++ b/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexDefinitionTest.java
@@ -61,7 +61,7 @@ public class RuleIndexDefinitionTest {
.isEqualTo(IndexType.main(Index.withRelations("rules"), "rule"));
assertThat(ruleIndex.getRelationsStream())
.extracting(IndexType.IndexRelationType::getName)
- .containsOnly("activeRule", "ruleExtension");
+ .containsOnly("activeRule");
// no cluster by default
assertThat(ruleIndex.getSetting("index.number_of_shards")).isEqualTo("2");
diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexTest.java
index 2dc3371373c..be13bf85728 100644
--- a/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexTest.java
+++ b/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexTest.java
@@ -31,10 +31,8 @@ import org.junit.rules.ExpectedException;
import org.sonar.api.impl.utils.AlwaysIncreasingSystem2;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rule.RuleStatus;
-import org.sonar.api.rules.RuleType;
import org.sonar.api.utils.System2;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleMetadataDto;
@@ -67,7 +65,6 @@ import static org.sonar.db.rule.RuleTesting.setIsExternal;
import static org.sonar.db.rule.RuleTesting.setIsTemplate;
import static org.sonar.db.rule.RuleTesting.setLanguage;
import static org.sonar.db.rule.RuleTesting.setName;
-import static org.sonar.db.rule.RuleTesting.setOrganization;
import static org.sonar.db.rule.RuleTesting.setRepositoryKey;
import static org.sonar.db.rule.RuleTesting.setRuleKey;
import static org.sonar.db.rule.RuleTesting.setSecurityStandards;
@@ -86,7 +83,6 @@ import static org.sonar.server.rule.index.RuleIndex.FACET_TAGS;
import static org.sonar.server.rule.index.RuleIndex.FACET_TYPES;
import static org.sonar.server.rule.index.RuleIndexDefinition.TYPE_ACTIVE_RULE;
import static org.sonar.server.rule.index.RuleIndexDefinition.TYPE_RULE;
-import static org.sonar.server.rule.index.RuleIndexDefinition.TYPE_RULE_EXTENSION;
import static org.sonar.server.security.SecurityStandards.SANS_TOP_25_INSECURE_INTERACTION;
import static org.sonar.server.security.SecurityStandards.SANS_TOP_25_RISKY_RESOURCE;
@@ -293,21 +289,19 @@ public class RuleIndexTest {
@Test
public void filter_by_tags() {
- OrganizationDto organization = db.organizations().insert();
-
RuleDefinitionDto rule1 = createRule(setSystemTags("tag1s"));
- createRuleMetadata(rule1, organization, setTags("tag1"));
+ createRuleMetadata(rule1, setTags("tag1"));
RuleDefinitionDto rule2 = createRule(setSystemTags("tag2s"));
- createRuleMetadata(rule2, organization, setTags("tag2"));
+ createRuleMetadata(rule2, setTags("tag2"));
index();
- assertThat(es.countDocuments(TYPE_RULE_EXTENSION)).isEqualTo(4);
+ assertThat(es.countDocuments(TYPE_RULE)).isEqualTo(2);
// tag2s in filter
- RuleQuery query = new RuleQuery().setOrganization(organization).setTags(of("tag2s"));
+ RuleQuery query = new RuleQuery().setTags(of("tag2s"));
verifySearch(query, rule2);
// tag2 in filter
- query = new RuleQuery().setOrganization(organization).setTags(of("tag2"));
+ query = new RuleQuery().setTags(of("tag2"));
verifySearch(query, rule2);
// empty list => no filter
@@ -321,14 +315,11 @@ public class RuleIndexTest {
@Test
public void tags_facet_supports_selected_value_with_regexp_special_characters() {
- OrganizationDto organization = db.organizations().insert();
-
RuleDefinitionDto rule = createRule();
- createRuleMetadata(rule, organization, setTags("misra++"));
+ createRuleMetadata(rule, setTags("misra++"));
index();
RuleQuery query = new RuleQuery()
- .setOrganization(organization)
.setTags(singletonList("misra["));
SearchOptions options = new SearchOptions().addFacets(FACET_TAGS);
@@ -507,8 +498,8 @@ public class RuleIndexTest {
@Test
public void compare_to_another_profile() {
String xoo = "xoo";
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(xoo));
- QProfileDto anotherProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(xoo));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(xoo));
+ QProfileDto anotherProfile = db.qualityProfiles().insert(p -> p.setLanguage(xoo));
RuleDefinitionDto commonRule = db.rules().insertRule(r -> r.setLanguage(xoo)).getDefinition();
RuleDefinitionDto profileRule1 = db.rules().insertRule(r -> r.setLanguage(xoo)).getDefinition();
RuleDefinitionDto profileRule2 = db.rules().insertRule(r -> r.setLanguage(xoo)).getDefinition();
@@ -544,8 +535,8 @@ public class RuleIndexTest {
}
@SafeVarargs
- private final RuleMetadataDto createRuleMetadata(RuleDefinitionDto rule, OrganizationDto organization, Consumer<RuleMetadataDto>... populaters) {
- return db.rules().insertOrUpdateMetadata(rule, organization, populaters);
+ private final RuleMetadataDto createRuleMetadata(RuleDefinitionDto rule, Consumer<RuleMetadataDto>... populaters) {
+ return db.rules().insertOrUpdateMetadata(rule, populaters);
}
@Test
@@ -641,16 +632,16 @@ public class RuleIndexTest {
}
private void index() {
- ruleIndexer.indexOnStartup(Sets.newHashSet(TYPE_RULE, TYPE_RULE_EXTENSION));
+ ruleIndexer.indexOnStartup(Sets.newHashSet(TYPE_RULE));
activeRuleIndexer.indexOnStartup(Sets.newHashSet(TYPE_ACTIVE_RULE));
}
private RuleQuery newRuleQuery() {
- return new RuleQuery().setOrganization(db.getDefaultOrganization());
+ return new RuleQuery();
}
private QProfileDto createJavaProfile() {
- return db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage("java"));
+ return db.qualityProfiles().insert(p -> p.setLanguage("java"));
}
@Test
@@ -733,46 +724,24 @@ public class RuleIndexTest {
}
@Test
- public void listTags_should_return_both_system_tags_and_organization_specific_tags() {
- OrganizationDto organization = db.organizations().insert();
-
+ public void listTags_should_return_tags() {
RuleDefinitionDto rule1 = createRule(setSystemTags("sys1", "sys2"));
- createRuleMetadata(rule1, organization, setOrganization(organization), setTags("tag1"));
+ createRuleMetadata(rule1, setTags("tag1"));
RuleDefinitionDto rule2 = createRule(setSystemTags());
- createRuleMetadata(rule2, organization, setOrganization(organization), setTags("tag2"));
-
- index();
-
- assertThat(underTest.listTags(organization, null, 10)).containsOnly("tag1", "tag2", "sys1", "sys2");
- }
-
- @Test
- public void listTags_must_not_return_tags_of_other_organizations() {
- OrganizationDto organization1 = db.organizations().insert();
- RuleDefinitionDto rule1 = createRule(setSystemTags("sys1"));
- createRuleMetadata(rule1, organization1, setOrganization(organization1), setTags("tag1"));
+ createRuleMetadata(rule2, setTags("tag2"));
- OrganizationDto organization2 = db.organizations().insert();
- RuleDefinitionDto rule2 = createRule(setSystemTags("sys2"));
- createRuleMetadata(rule2, organization2, setOrganization(organization2), setTags("tag2"));
-
- OrganizationDto organization3 = db.organizations().insert();
index();
- assertThat(underTest.listTags(organization1, null, 10)).containsOnly("tag1", "sys1", "sys2");
- assertThat(underTest.listTags(organization2, null, 10)).containsOnly("tag2", "sys1", "sys2");
- assertThat(underTest.listTags(organization3, null, 10)).containsOnly("sys1", "sys2");
+ assertThat(underTest.listTags(null, 10)).containsOnly("tag1", "tag2", "sys1", "sys2");
}
@Test
public void fail_to_list_tags_when_size_greater_than_500() {
- OrganizationDto organization = db.organizations().insert();
-
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Page size must be lower than or equals to 500");
- underTest.listTags(organization, null, 501);
+ underTest.listTags(null, 501);
}
@Test
@@ -795,17 +764,15 @@ public class RuleIndexTest {
@Test
public void global_facet_on_repositories_and_tags() {
- OrganizationDto organization = db.organizations().insert();
-
createRule(setRepositoryKey("php"), setSystemTags("sysTag"));
RuleDefinitionDto rule1 = createRule(setRepositoryKey("php"), setSystemTags());
- createRuleMetadata(rule1, organization, setTags("tag1"));
+ createRuleMetadata(rule1, setTags("tag1"));
RuleDefinitionDto rule2 = createRule(setRepositoryKey("javascript"), setSystemTags());
- createRuleMetadata(rule2, organization, setTags("tag1", "tag2"));
+ createRuleMetadata(rule2, setTags("tag1", "tag2"));
index();
// should not have any facet!
- RuleQuery query = new RuleQuery().setOrganization(organization);
+ RuleQuery query = new RuleQuery();
SearchIdResult result1 = underTest.search(query, new SearchOptions());
assertThat(result1.getFacets().getAll()).isEmpty();
@@ -859,9 +826,7 @@ public class RuleIndexTest {
@Test
public void sticky_facets_no_filters() {
setupStickyFacets();
- OrganizationDto organization = db.organizations().insert();
-
- RuleQuery query = new RuleQuery().setOrganization(organization);
+ RuleQuery query = new RuleQuery();
SearchIdResult<String> result = underTest.search(query, new SearchOptions().addFacets(asList(FACET_LANGUAGES, FACET_REPOSITORIES,
FACET_TAGS, FACET_TYPES)));
@@ -880,12 +845,9 @@ public class RuleIndexTest {
@Test
public void sticky_facets_with_1_filter() {
setupStickyFacets();
- OrganizationDto organization = db.organizations().insert();
-
- RuleQuery query = new RuleQuery().setOrganization(organization).setLanguages(ImmutableList.of("cpp"));
+ RuleQuery query = new RuleQuery().setLanguages(ImmutableList.of("cpp"));
- SearchIdResult<String> result = underTest.search(query, new SearchOptions().addFacets(asList(FACET_LANGUAGES,
- FACET_REPOSITORIES, FACET_TAGS)));
+ SearchIdResult<String> result = underTest.search(query, new SearchOptions().addFacets(asList(FACET_LANGUAGES, FACET_REPOSITORIES, FACET_TAGS)));
assertThat(result.getUuids()).hasSize(3);
assertThat(result.getFacets().getAll()).hasSize(3);
assertThat(result.getFacets().get(FACET_LANGUAGES).keySet()).containsOnly("cpp", "java", "cobol");
@@ -915,12 +877,11 @@ public class RuleIndexTest {
@Test
public void tags_facet_should_find_tags_of_specified_organization() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule = createRule(setSystemTags());
- createRuleMetadata(rule, organization, setTags("bla"));
+ createRuleMetadata(rule, setTags("bla"));
index();
- RuleQuery query = new RuleQuery().setOrganization(organization);
+ RuleQuery query = new RuleQuery();
SearchOptions options = new SearchOptions().addFacets(singletonList(FACET_TAGS));
SearchIdResult<String> result = underTest.search(query, options);
@@ -934,8 +895,7 @@ public class RuleIndexTest {
createRule(setSystemTags(tags));
index();
- RuleQuery query = new RuleQuery()
- .setOrganization(db.getDefaultOrganization());
+ RuleQuery query = new RuleQuery();
SearchOptions options = new SearchOptions().addFacets(singletonList(FACET_TAGS));
SearchIdResult<String> result = underTest.search(query, options);
assertThat(result.getFacets().get(FACET_TAGS).size()).isEqualTo(100);
@@ -951,7 +911,6 @@ public class RuleIndexTest {
index();
RuleQuery query = new RuleQuery()
- .setOrganization(db.getDefaultOrganization())
.setTags(singletonList("tagA"));
SearchOptions options = new SearchOptions().addFacets(singletonList(FACET_TAGS));
SearchIdResult<String> result = underTest.search(query, options);
@@ -965,41 +924,14 @@ public class RuleIndexTest {
}
@Test
- public void tags_facet_should_not_find_tags_of_any_other_organization() {
- OrganizationDto organization1 = db.organizations().insert();
- OrganizationDto organization2 = db.organizations().insert();
- RuleDefinitionDto rule = createRule(setSystemTags());
- createRuleMetadata(rule, organization1, setTags("bla1"));
- createRuleMetadata(rule, organization2, setTags("bla2"));
- index();
-
- RuleQuery query = new RuleQuery().setOrganization(organization2);
- SearchOptions options = new SearchOptions().addFacets(singletonList(FACET_TAGS));
-
- SearchIdResult<String> result = underTest.search(query, options);
- assertThat(result.getFacets().get(FACET_TAGS).entrySet()).extracting(e -> entry(e.getKey(), e.getValue())).containsExactly(
- entry("bla2", 1L));
- }
-
- @Test
public void tags_facet_should_be_available_if_organization_is_specified() {
- OrganizationDto organization = db.organizations().insert();
- RuleQuery query = new RuleQuery().setOrganization(organization);
+ RuleQuery query = new RuleQuery();
SearchOptions options = new SearchOptions().addFacets(singletonList(FACET_TAGS));
SearchIdResult<String> result = underTest.search(query, options);
assertThat(result.getFacets().get(FACET_TAGS)).isNotNull();
}
- @Test
- public void tags_facet_should_be_unavailable_if_no_organization_is_specfified() {
- RuleQuery query = new RuleQuery();
- SearchOptions options = new SearchOptions().addFacets(singletonList(FACET_TAGS));
-
- expectedException.expectMessage("Cannot use tags facet, if no organization is specified.");
- underTest.search(query, options);
- }
-
/**
* Facet with 2 filters
* -- lang facet for tag T2
@@ -1011,7 +943,6 @@ public class RuleIndexTest {
setupStickyFacets();
RuleQuery query = new RuleQuery()
- .setOrganization(db.getDefaultOrganization())
.setLanguages(ImmutableList.of("cpp"))
.setTags(ImmutableList.of("T2"));
@@ -1037,7 +968,6 @@ public class RuleIndexTest {
setupStickyFacets();
RuleQuery query = new RuleQuery()
- .setOrganization(db.getDefaultOrganization())
.setLanguages(ImmutableList.of("cpp", "java"))
.setTags(ImmutableList.of("T2"))
.setTypes(asList(BUG, CODE_SMELL));
diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexerTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexerTest.java
index 9b9d1915615..21205f37cdf 100644
--- a/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexerTest.java
+++ b/server/sonar-server-common/src/test/java/org/sonar/server/rule/index/RuleIndexerTest.java
@@ -44,7 +44,6 @@ import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleDto.Scope;
-import org.sonar.db.rule.RuleMetadataDto;
import org.sonar.db.rule.RuleTesting;
import org.sonar.server.es.EsTester;
import org.sonar.server.security.SecurityStandards;
@@ -53,14 +52,11 @@ import org.sonar.server.security.SecurityStandards.SQCategory;
import static com.google.common.collect.Sets.newHashSet;
import static java.lang.String.format;
import static java.util.Collections.emptyList;
-import static java.util.Collections.emptySet;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toSet;
import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.elasticsearch.index.query.QueryBuilders.termQuery;
import static org.sonar.server.rule.index.RuleIndexDefinition.TYPE_RULE;
-import static org.sonar.server.rule.index.RuleIndexDefinition.TYPE_RULE_EXTENSION;
import static org.sonar.server.security.SecurityStandards.CWES_BY_SQ_CATEGORY;
import static org.sonar.server.security.SecurityStandards.SQ_CATEGORY_KEYS_ORDERING;
@@ -130,50 +126,6 @@ public class RuleIndexerTest {
}
@Test
- public void index_rule_extension_with_long_id() {
- RuleDefinitionDto rule = dbTester.rules().insert(r -> r.setRuleKey(RuleTesting.randomRuleKeyOfMaximumLength()));
- underTest.commitAndIndex(dbTester.getSession(), rule.getUuid());
- OrganizationDto organization = dbTester.organizations().insert();
- RuleMetadataDto metadata = RuleTesting.newRuleMetadata(rule, organization).setTags(ImmutableSet.of("bla"));
- dbTester.getDbClient().ruleDao().insertOrUpdate(dbTester.getSession(), metadata);
- underTest.commitAndIndex(dbTester.getSession(), rule.getUuid(), organization);
-
- RuleExtensionDoc doc = new RuleExtensionDoc()
- .setRuleUuid(rule.getUuid())
- .setScope(RuleExtensionScope.organization(organization.getUuid()));
- assertThat(
- es.client()
- .prepareSearch(TYPE_RULE_EXTENSION.getMainType())
- .setQuery(termQuery("_id", doc.getId()))
- .get()
- .getHits()
- .getHits()[0]
- .getId()).isEqualTo(doc.getId());
- }
-
- @Test
- public void delete_rule_extension_from_index_when_setting_rule_tags_to_empty() {
- RuleDefinitionDto rule = dbTester.rules().insert(r -> r.setRuleKey(RuleTesting.randomRuleKeyOfMaximumLength()));
- underTest.commitAndIndex(dbTester.getSession(), rule.getUuid());
- OrganizationDto organization = dbTester.organizations().insert();
- RuleMetadataDto metadata = RuleTesting.newRuleMetadata(rule, organization).setTags(ImmutableSet.of("bla"));
- dbTester.getDbClient().ruleDao().insertOrUpdate(dbTester.getSession(), metadata);
- underTest.commitAndIndex(dbTester.getSession(), rule.getUuid(), organization);
-
- // index tags
- RuleExtensionDoc doc = new RuleExtensionDoc()
- .setRuleUuid(rule.getUuid())
- .setScope(RuleExtensionScope.organization(organization.getUuid()));
- assertThat(es.getIds(TYPE_RULE_EXTENSION)).contains(doc.getId());
-
- // update db table "rules_metadata" with empty tags and delete tags from index
- metadata = RuleTesting.newRuleMetadata(rule, organization).setTags(emptySet());
- dbTester.getDbClient().ruleDao().insertOrUpdate(dbTester.getSession(), metadata);
- underTest.commitAndIndex(dbTester.getSession(), rule.getUuid(), organization);
- assertThat(es.getIds(TYPE_RULE_EXTENSION)).doesNotContain(doc.getId());
- }
-
- @Test
public void index_long_rule_description() {
String description = IntStream.range(0, 100000).map(i -> i % 100).mapToObj(Integer::toString).collect(joining(" "));
RuleDefinitionDto rule = dbTester.rules().insert(r -> r.setDescription(description));
@@ -194,7 +146,7 @@ public class RuleIndexerTest {
.setSecurityStandards(standards)
.setDescription(VALID_HOTSPOT_RULE_DESCRIPTION));
OrganizationDto organization = dbTester.organizations().insert();
- underTest.commitAndIndex(dbTester.getSession(), rule.getUuid(), organization);
+ underTest.commitAndIndex(dbTester.getSession(), rule.getUuid());
assertThat(logTester.getLogs()).hasSize(1);
assertThat(logTester.logs(LoggerLevel.WARN).get(0))
@@ -230,7 +182,7 @@ public class RuleIndexerTest {
.setType(RuleType.SECURITY_HOTSPOT)
.setDescription(description));
OrganizationDto organization = dbTester.organizations().insert();
- underTest.commitAndIndex(dbTester.getSession(), rule.getUuid(), organization);
+ underTest.commitAndIndex(dbTester.getSession(), rule.getUuid());
assertThat(logTester.getLogs()).hasSize(1);
assertThat(logTester.logs(LoggerLevel.WARN).get(0))
@@ -253,7 +205,7 @@ public class RuleIndexerTest {
.setType(RuleType.SECURITY_HOTSPOT)
.setDescription(randomAlphabetic(30)));
OrganizationDto organization = dbTester.organizations().insert();
- underTest.commitAndIndex(dbTester.getSession(), rule.getUuid(), organization);
+ underTest.commitAndIndex(dbTester.getSession(), rule.getUuid());
assertThat(logTester.getLogs()).hasSize(1);
assertThat(logTester.logs(LoggerLevel.WARN).get(0))
@@ -270,7 +222,7 @@ public class RuleIndexerTest {
"<h2>Ask Yourself Whether</h2>\n" +
"foo"));
OrganizationDto organization = dbTester.organizations().insert();
- underTest.commitAndIndex(dbTester.getSession(), rule.getUuid(), organization);
+ underTest.commitAndIndex(dbTester.getSession(), rule.getUuid());
assertThat(logTester.getLogs()).hasSize(1);
assertThat(logTester.logs(LoggerLevel.WARN).get(0))
@@ -288,7 +240,7 @@ public class RuleIndexerTest {
"<h2>Recommended Secure Coding Practices</h2>\n" +
"foo"));
OrganizationDto organization = dbTester.organizations().insert();
- underTest.commitAndIndex(dbTester.getSession(), rule.getUuid(), organization);
+ underTest.commitAndIndex(dbTester.getSession(), rule.getUuid());
assertThat(logTester.getLogs()).hasSize(1);
assertThat(logTester.logs(LoggerLevel.WARN).get(0))
@@ -305,7 +257,7 @@ public class RuleIndexerTest {
"<h2>Recommended Secure Coding Practices</h2>\n" +
"foo"));
OrganizationDto organization = dbTester.organizations().insert();
- underTest.commitAndIndex(dbTester.getSession(), rule.getUuid(), organization);
+ underTest.commitAndIndex(dbTester.getSession(), rule.getUuid());
assertThat(logTester.getLogs()).hasSize(1);
assertThat(logTester.logs(LoggerLevel.WARN).get(0))
diff --git a/server/sonar-server-common/src/testFixtures/java/org/sonar/server/organization/TestDefaultOrganizationProvider.java b/server/sonar-server-common/src/testFixtures/java/org/sonar/server/organization/TestDefaultOrganizationProvider.java
index 22bdbf30e74..4c27c0e59cd 100644
--- a/server/sonar-server-common/src/testFixtures/java/org/sonar/server/organization/TestDefaultOrganizationProvider.java
+++ b/server/sonar-server-common/src/testFixtures/java/org/sonar/server/organization/TestDefaultOrganizationProvider.java
@@ -66,11 +66,11 @@ public class TestDefaultOrganizationProvider implements DefaultOrganizationProvi
}
}
- private static final class DbTesterDefaultOrganizationProvider implements DefaultOrganizationProvider {
+ public static final class DbTesterDefaultOrganizationProvider implements DefaultOrganizationProvider {
private final DbTester dbTester;
private DefaultOrganization defaultOrganization = null;
- private DbTesterDefaultOrganizationProvider(DbTester dbTester) {
+ public DbTesterDefaultOrganizationProvider(DbTester dbTester) {
this.dbTester = dbTester;
}
diff --git a/server/sonar-web/src/main/js/api/quality-profiles.ts b/server/sonar-web/src/main/js/api/quality-profiles.ts
index c49ae261a20..5131add5f74 100644
--- a/server/sonar-web/src/main/js/api/quality-profiles.ts
+++ b/server/sonar-web/src/main/js/api/quality-profiles.ts
@@ -340,7 +340,6 @@ export function bulkDeactivateRules(data: BulkActivateParameters) {
export function activateRule(data: {
key: string;
- organization: string | undefined;
params?: T.Dict<string>;
reset?: boolean;
rule: string;
@@ -351,10 +350,6 @@ export function activateRule(data: {
return post('/api/qualityprofiles/activate_rule', { ...data, params }).catch(throwGlobalError);
}
-export function deactivateRule(data: {
- key: string;
- organization: string | undefined;
- rule: string;
-}) {
+export function deactivateRule(data: { key: string; rule: string }) {
return post('/api/qualityprofiles/deactivate_rule', data).catch(throwGlobalError);
}
diff --git a/server/sonar-web/src/main/js/api/rules.ts b/server/sonar-web/src/main/js/api/rules.ts
index bc14cb5be5e..97f244e2728 100644
--- a/server/sonar-web/src/main/js/api/rules.ts
+++ b/server/sonar-web/src/main/js/api/rules.ts
@@ -39,7 +39,7 @@ export interface SearchRulesResponse {
}
export function searchRules(data: {
- organization: string | undefined;
+ organization?: string;
[x: string]: any;
}): Promise<SearchRulesResponse> {
return getJSON('/api/rules/search', data).catch(throwGlobalError);
@@ -53,13 +53,13 @@ export function takeFacet(response: any, property: string) {
export function getRuleDetails(parameters: {
actives?: boolean;
key: string;
- organization: string | undefined;
+ organization?: string;
}): Promise<{ actives?: T.RuleActivation[]; rule: T.RuleDetails }> {
return getJSON('/api/rules/show', parameters).catch(throwGlobalError);
}
export function getRuleTags(parameters: {
- organization: string | undefined;
+ organization?: string;
ps?: number;
q: string;
}): Promise<string[]> {
@@ -70,7 +70,7 @@ export function createRule(data: {
custom_key: string;
markdown_description: string;
name: string;
- organization: string | undefined;
+ organization?: string;
params?: string;
prevent_reactivation?: boolean;
severity?: string;
@@ -92,7 +92,7 @@ export function createRule(data: {
);
}
-export function deleteRule(parameters: { key: string; organization: string | undefined }) {
+export function deleteRule(parameters: { key: string; organization?: string }) {
return post('/api/rules/delete', parameters).catch(throwGlobalError);
}
@@ -101,7 +101,7 @@ export function updateRule(data: {
markdown_description?: string;
markdown_note?: string;
name?: string;
- organization: string | undefined;
+ organization?: string;
params?: string;
remediation_fn_base_effort?: string;
remediation_fn_type?: string;
diff --git a/server/sonar-web/src/main/js/app/components/nav/component/projectInformation/meta/MetaQualityProfiles.tsx b/server/sonar-web/src/main/js/app/components/nav/component/projectInformation/meta/MetaQualityProfiles.tsx
index 1b454485007..2201aee0b6c 100644
--- a/server/sonar-web/src/main/js/app/components/nav/component/projectInformation/meta/MetaQualityProfiles.tsx
+++ b/server/sonar-web/src/main/js/app/components/nav/component/projectInformation/meta/MetaQualityProfiles.tsx
@@ -75,7 +75,6 @@ export class MetaQualityProfiles extends React.PureComponent<StateProps & OwnPro
loadDeprecatedRulesForProfile(profileKey: string) {
const data = {
activation: 'true',
- organization: undefined,
ps: 1,
qprofile: profileKey,
statuses: 'DEPRECATED'
diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutApp.tsx b/server/sonar-web/src/main/js/apps/about/components/AboutApp.tsx
index 4f53635a2c8..0ab48488566 100644
--- a/server/sonar-web/src/main/js/apps/about/components/AboutApp.tsx
+++ b/server/sonar-web/src/main/js/apps/about/components/AboutApp.tsx
@@ -183,7 +183,7 @@ export class AboutApp extends React.PureComponent<Props, State> {
<AboutQualityGates />
</div>
<div className="flex-column flex-column-half about-page-group-boxes">
- <AboutStandards appState={this.props.appState} />
+ <AboutStandards />
</div>
</div>
diff --git a/server/sonar-web/src/main/js/apps/about/components/AboutStandards.tsx b/server/sonar-web/src/main/js/apps/about/components/AboutStandards.tsx
index 6b4dc1aaf83..46c242df828 100644
--- a/server/sonar-web/src/main/js/apps/about/components/AboutStandards.tsx
+++ b/server/sonar-web/src/main/js/apps/about/components/AboutStandards.tsx
@@ -30,13 +30,7 @@ const owaspTags =
'owasp-a1,owasp-a2,owasp-a3,owasp-a4,owasp-a5,owasp-a6,owasp-a7,owasp-a8,owasp-a9,owasp-a10';
const sans25Tags = 'sans-top25-porous,sans-top25-risky,sans-top25-insecure';
-interface Props {
- appState: Pick<T.AppState, 'defaultOrganization' | 'organizationsEnabled'>;
-}
-
-export default function AboutStandards({ appState }: Props) {
- const organization = appState.organizationsEnabled ? appState.defaultOrganization : undefined;
-
+export default function AboutStandards() {
return (
<div className="boxed-group">
<h2>{translate('about_page.standards')}</h2>
@@ -46,31 +40,31 @@ export default function AboutStandards({ appState }: Props) {
<div className="spacer-top">
<ul className="list-inline">
<li>
- <Link className="link-with-icon" to={getRulesUrl({ tags: 'misra' }, organization)}>
+ <Link className="link-with-icon" to={getRulesUrl({ tags: 'misra' })}>
<TagsIcon />
<span className="little-spacer-left">MISRA</span>
</Link>
</li>
<li>
- <Link className="link-with-icon" to={getRulesUrl({ tags: 'cert' }, organization)}>
+ <Link className="link-with-icon" to={getRulesUrl({ tags: 'cert' })}>
<TagsIcon />
<span className="little-spacer-left">CERT</span>
</Link>
</li>
<li>
- <Link className="link-with-icon" to={getRulesUrl({ tags: 'cwe' }, organization)}>
+ <Link className="link-with-icon" to={getRulesUrl({ tags: 'cwe' })}>
<TagsIcon />
<span className="little-spacer-left">CWE</span>
</Link>
</li>
<li>
- <Link className="link-with-icon" to={getRulesUrl({ tags: owaspTags }, organization)}>
+ <Link className="link-with-icon" to={getRulesUrl({ tags: owaspTags })}>
<TagsIcon />
<span className="little-spacer-left">OWASP Top 10</span>
</Link>
</li>
<li>
- <Link className="link-with-icon" to={getRulesUrl({ tags: sans25Tags }, organization)}>
+ <Link className="link-with-icon" to={getRulesUrl({ tags: sans25Tags })}>
<TagsIcon />
<span className="little-spacer-left">SANS Top 25</span>
</Link>
diff --git a/server/sonar-web/src/main/js/apps/about/components/__tests__/__snapshots__/AboutApp-test.tsx.snap b/server/sonar-web/src/main/js/apps/about/components/__tests__/__snapshots__/AboutApp-test.tsx.snap
index 292d1393e56..4ca36d39504 100644
--- a/server/sonar-web/src/main/js/apps/about/components/__tests__/__snapshots__/AboutApp-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/about/components/__tests__/__snapshots__/AboutApp-test.tsx.snap
@@ -99,20 +99,7 @@ exports[`should render correctly 1`] = `
<div
className="flex-column flex-column-half about-page-group-boxes"
>
- <AboutStandards
- appState={
- Object {
- "defaultOrganization": "foo",
- "edition": "community",
- "productionDatabase": true,
- "qualifiers": Array [
- "TRK",
- ],
- "settings": Object {},
- "version": "1.0",
- }
- }
- />
+ <AboutStandards />
</div>
</div>
<AboutScanners />
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/ActivationButton.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/ActivationButton.tsx
index 1970109708d..641fb74f6dc 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/ActivationButton.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/ActivationButton.tsx
@@ -28,7 +28,6 @@ interface Props {
className?: string;
modalHeader: string;
onDone: (severity: string) => Promise<void>;
- organization: string | undefined;
profiles: BaseProfile[];
rule: T.Rule | T.RuleDetails;
}
@@ -64,7 +63,6 @@ export default class ActivationButton extends React.PureComponent<Props, State>
modalHeader={this.props.modalHeader}
onClose={this.handleCloseModal}
onDone={this.props.onDone}
- organization={this.props.organization}
profiles={this.props.profiles}
rule={this.props.rule}
/>
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/ActivationFormModal.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/ActivationFormModal.tsx
index 32c9d1c9c2a..09eb9f0ec4e 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/ActivationFormModal.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/ActivationFormModal.tsx
@@ -35,7 +35,6 @@ interface Props {
modalHeader: string;
onClose: () => void;
onDone: (severity: string) => Promise<void>;
- organization: string | undefined;
profiles: Profile[];
rule: T.Rule | T.RuleDetails;
}
@@ -106,7 +105,6 @@ export default class ActivationFormModal extends React.PureComponent<Props, Stat
this.setState({ submitting: true });
const data = {
key: this.state.profile,
- organization: this.props.organization,
params: this.state.params,
rule: this.props.rule.key,
severity: this.state.severity
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/App.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/App.tsx
index 2000e66a61e..967f142878e 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/App.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/App.tsx
@@ -42,7 +42,6 @@ import FiltersHeader from '../../../components/common/FiltersHeader';
import ScreenPositionHelper from '../../../components/common/ScreenPositionHelper';
import '../../../components/search-navigator.css';
import { hasPrivateAccess } from '../../../helpers/organizations';
-import { isSonarCloud } from '../../../helpers/system';
import { isLoggedIn } from '../../../helpers/users';
import {
getAppState,
@@ -552,7 +551,7 @@ export class App extends React.PureComponent<Props, State> {
const { canWrite, paging, query, referencedProfiles } = this.state;
const organization = this.props.organization && this.props.organization.key;
- if (!isLoggedIn(currentUser) || (isSonarCloud() && !organization) || !canWrite) {
+ if (!isLoggedIn(currentUser) || !canWrite) {
return null;
}
@@ -664,7 +663,6 @@ export class App extends React.PureComponent<Props, State> {
onDeactivate={this.handleRuleDeactivate}
onDelete={this.handleRuleDelete}
onFilterChange={this.handleFilterChange}
- organization={organization}
referencedProfiles={this.state.referencedProfiles}
referencedRepositories={this.state.referencedRepositories}
ruleKey={this.state.openRule.key}
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleButton.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleButton.tsx
index dbbb61de782..3c91fe61523 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleButton.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleButton.tsx
@@ -24,7 +24,6 @@ interface Props {
children: (props: { onClick: () => void }) => React.ReactNode;
customRule?: T.RuleDetails;
onDone: (newRuleDetails: T.RuleDetails) => void;
- organization: string | undefined;
templateRule: T.RuleDetails;
}
@@ -68,7 +67,6 @@ export default class CustomRuleButton extends React.PureComponent<Props, State>
customRule={this.props.customRule}
onClose={this.handleModalClose}
onDone={this.handleDone}
- organization={this.props.organization}
templateRule={this.props.templateRule}
/>
)}
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleFormModal.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleFormModal.tsx
index 40d85d3e191..d0d03f69fca 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleFormModal.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/CustomRuleFormModal.tsx
@@ -36,7 +36,6 @@ interface Props {
customRule?: T.RuleDetails;
onClose: () => void;
onDone: (newRuleDetails: T.RuleDetails) => void;
- organization: string | undefined;
templateRule: T.RuleDetails;
}
@@ -87,14 +86,13 @@ export default class CustomRuleFormModal extends React.PureComponent<Props, Stat
}
prepareRequest = () => {
- const { customRule, organization, templateRule } = this.props;
+ const { customRule, templateRule } = this.props;
const params = Object.keys(this.state.params)
.map(key => `${key}=${csvEscape(this.state.params[key])}`)
.join(';');
const ruleData = {
markdown_description: this.state.description,
name: this.state.name,
- organization,
params,
severity: this.state.severity,
status: this.state.status
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetails.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetails.tsx
index fecab52d5ee..bafd6364610 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetails.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetails.tsx
@@ -42,7 +42,6 @@ interface Props {
onDeactivate: (profile: string, rule: string) => void;
onDelete: (rule: string) => void;
onFilterChange: (changes: Partial<Query>) => void;
- organization: string | undefined;
referencedProfiles: T.Dict<Profile>;
referencedRepositories: T.Dict<{ key: string; language: string; name: string }>;
ruleKey: string;
@@ -79,8 +78,7 @@ export default class RuleDetails extends React.PureComponent<Props, State> {
fetchRuleDetails = () => {
return getRuleDetails({
actives: true,
- key: this.props.ruleKey,
- organization: this.props.organization
+ key: this.props.ruleKey
}).then(
({ actives, rule }) => {
if (this.mounted) {
@@ -109,7 +107,6 @@ export default class RuleDetails extends React.PureComponent<Props, State> {
);
updateRule({
key: this.props.ruleKey,
- organization: this.props.organization,
tags: tags.join()
}).catch(() => {
if (this.mounted) {
@@ -146,7 +143,7 @@ export default class RuleDetails extends React.PureComponent<Props, State> {
};
handleDelete = () => {
- return deleteRule({ key: this.props.ruleKey, organization: this.props.organization }).then(() =>
+ return deleteRule({ key: this.props.ruleKey }).then(() =>
this.props.onDelete(this.props.ruleKey)
);
};
@@ -158,13 +155,7 @@ export default class RuleDetails extends React.PureComponent<Props, State> {
return <div className="coding-rule-details" />;
}
- const {
- allowCustomRules,
- canWrite,
- hideQualityProfiles,
- organization,
- referencedProfiles
- } = this.props;
+ const { allowCustomRules, canWrite, hideQualityProfiles, referencedProfiles } = this.props;
const { params = [] } = ruleDetails;
const isCustom = !!ruleDetails.templateKey;
@@ -177,7 +168,6 @@ export default class RuleDetails extends React.PureComponent<Props, State> {
canWrite={canWrite}
onFilterChange={this.props.onFilterChange}
onTagsChange={this.handleTagsChange}
- organization={organization}
referencedRepositories={this.props.referencedRepositories}
ruleDetails={ruleDetails}
/>
@@ -185,7 +175,6 @@ export default class RuleDetails extends React.PureComponent<Props, State> {
<RuleDetailsDescription
canWrite={canWrite}
onChange={this.handleRuleChange}
- organization={organization}
ruleDetails={ruleDetails}
/>
@@ -198,7 +187,6 @@ export default class RuleDetails extends React.PureComponent<Props, State> {
<CustomRuleButton
customRule={ruleDetails}
onDone={this.handleRuleChange}
- organization={organization}
templateRule={ruleDetails}>
{({ onClick }) => (
<Button
@@ -243,7 +231,6 @@ export default class RuleDetails extends React.PureComponent<Props, State> {
{ruleDetails.isTemplate && (
<RuleDetailsCustomRules
canChange={allowCustomRules && canWrite}
- organization={organization}
ruleDetails={ruleDetails}
/>
)}
@@ -254,14 +241,13 @@ export default class RuleDetails extends React.PureComponent<Props, State> {
canWrite={canWrite}
onActivate={this.handleActivate}
onDeactivate={this.handleDeactivate}
- organization={organization}
referencedProfiles={referencedProfiles}
ruleDetails={ruleDetails}
/>
)}
{!ruleDetails.isTemplate && ruleDetails.type !== 'SECURITY_HOTSPOT' && (
- <RuleDetailsIssues organization={organization} ruleDetails={ruleDetails} />
+ <RuleDetailsIssues ruleDetails={ruleDetails} />
)}
</DeferredSpinner>
</div>
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsCustomRules.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsCustomRules.tsx
index ae72cf22cf7..c1045673e02 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsCustomRules.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsCustomRules.tsx
@@ -31,7 +31,6 @@ import CustomRuleButton from './CustomRuleButton';
interface Props {
canChange?: boolean;
- organization: string | undefined;
ruleDetails: T.RuleDetails;
}
@@ -63,7 +62,6 @@ export default class RuleDetailsCustomRules extends React.PureComponent<Props, S
this.setState({ loading: true });
searchRules({
f: 'name,severity,params',
- organization: this.props.organization,
template_key: this.props.ruleDetails.key
}).then(
({ rules }) => {
@@ -88,7 +86,7 @@ export default class RuleDetailsCustomRules extends React.PureComponent<Props, S
};
handleRuleDelete = (ruleKey: string) => {
- return deleteRule({ key: ruleKey, organization: this.props.organization }).then(() => {
+ return deleteRule({ key: ruleKey }).then(() => {
if (this.mounted) {
this.setState(({ rules = [] }) => ({
rules: rules.filter(rule => rule.key !== ruleKey)
@@ -100,7 +98,7 @@ export default class RuleDetailsCustomRules extends React.PureComponent<Props, S
renderRule = (rule: T.Rule) => (
<tr data-rule={rule.key} key={rule.key}>
<td className="coding-rules-detail-list-name">
- <Link to={getRuleUrl(rule.key, this.props.organization)}>{rule.name}</Link>
+ <Link to={getRuleUrl(rule.key)}>{rule.name}</Link>
</td>
<td className="coding-rules-detail-list-severity">
@@ -153,10 +151,7 @@ export default class RuleDetailsCustomRules extends React.PureComponent<Props, S
<h3 className="coding-rules-detail-title">{translate('coding_rules.custom_rules')}</h3>
{this.props.canChange && (
- <CustomRuleButton
- onDone={this.handleRuleCreate}
- organization={this.props.organization}
- templateRule={this.props.ruleDetails}>
+ <CustomRuleButton onDone={this.handleRuleCreate} templateRule={this.props.ruleDetails}>
{({ onClick }) => (
<Button className="js-create-custom-rule spacer-left" onClick={onClick}>
{translate('coding_rules.create')}
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsDescription.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsDescription.tsx
index 0ff0289db2b..be9fdf20515 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsDescription.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsDescription.tsx
@@ -28,7 +28,6 @@ import RemoveExtendedDescriptionModal from './RemoveExtendedDescriptionModal';
interface Props {
canWrite: boolean | undefined;
onChange: (newRuleDetails: T.RuleDetails) => void;
- organization: string | undefined;
ruleDetails: T.RuleDetails;
}
@@ -83,8 +82,7 @@ export default class RuleDetailsDescription extends React.PureComponent<Props, S
updateRule({
key: this.props.ruleDetails.key,
- markdown_note: text,
- organization: this.props.organization
+ markdown_note: text
}).then(
ruleDetails => {
this.props.onChange(ruleDetails);
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsIssues.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsIssues.tsx
index 58b549ec643..cb8a5c20c0c 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsIssues.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsIssues.tsx
@@ -29,7 +29,6 @@ import { getIssuesUrl } from '../../../helpers/urls';
interface Props {
appState: Pick<T.AppState, 'branchesEnabled'>;
- organization: string | undefined;
ruleDetails: Pick<T.RuleDetails, 'key' | 'type'>;
}
@@ -66,16 +65,14 @@ export class RuleDetailsIssues extends React.PureComponent<Props, State> {
fetchIssues = () => {
const {
- ruleDetails: { key },
- organization
+ ruleDetails: { key }
} = this.props;
this.setState({ loading: true });
getFacet(
{
resolved: 'false',
- rules: key,
- organization
+ rules: key
},
'projects'
).then(
@@ -102,15 +99,14 @@ export class RuleDetailsIssues extends React.PureComponent<Props, State> {
renderTotal = () => {
const {
- ruleDetails: { key },
- organization
+ ruleDetails: { key }
} = this.props;
const { total } = this.state;
if (total === undefined) {
return null;
}
- const path = getIssuesUrl({ resolved: 'false', rules: key }, organization);
+ const path = getIssuesUrl({ resolved: 'false', rules: key });
const totalItem = (
<span className="little-spacer-left">
@@ -131,14 +127,10 @@ export class RuleDetailsIssues extends React.PureComponent<Props, State> {
renderProject = (project: Project) => {
const {
- ruleDetails: { key },
- organization
+ ruleDetails: { key }
} = this.props;
- const path = getIssuesUrl(
- { resolved: 'false', rules: key, projects: project.key },
- organization
- );
+ const path = getIssuesUrl({ resolved: 'false', rules: key, projects: project.key });
return (
<tr key={project.key}>
<td className="coding-rules-detail-list-name">{project.name}</td>
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsMeta.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsMeta.tsx
index c0819178da4..9d2b2de7d98 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsMeta.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsMeta.tsx
@@ -40,7 +40,6 @@ interface Props {
hideSimilarRulesFilter?: boolean;
onFilterChange: (changes: Partial<Query>) => void;
onTagsChange: (tags: string[]) => void;
- organization: string | undefined;
referencedRepositories: T.Dict<{ key: string; language: string; name: string }>;
ruleDetails: T.RuleDetails;
}
@@ -98,7 +97,6 @@ export default class RuleDetailsMeta extends React.PureComponent<Props> {
closeOnClickOutside={true}
overlay={
<RuleDetailsTagsPopup
- organization={this.props.organization}
setTags={this.props.onTagsChange}
sysTags={sysTags}
tags={tags}
@@ -165,7 +163,7 @@ export default class RuleDetailsMeta extends React.PureComponent<Props> {
<li className="coding-rules-detail-property">
{translate('coding_rules.custom_rule')}
{' ('}
- <Link to={getRuleUrl(ruleDetails.templateKey, this.props.organization)}>
+ <Link to={getRuleUrl(ruleDetails.templateKey)}>
{translate('coding_rules.show_template')}
</Link>
{')'}
@@ -235,7 +233,7 @@ export default class RuleDetailsMeta extends React.PureComponent<Props> {
<Link
className="coding-rules-detail-permalink link-no-underline spacer-left text-middle"
title={translate('permalink')}
- to={getRuleUrl(ruleDetails.key, this.props.organization)}>
+ to={getRuleUrl(ruleDetails.key)}>
<LinkIcon />
</Link>
)}
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsProfiles.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsProfiles.tsx
index c318b8d9e25..46014d03434 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsProfiles.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsProfiles.tsx
@@ -37,7 +37,6 @@ interface Props {
canWrite: boolean | undefined;
onActivate: () => Promise<void>;
onDeactivate: () => Promise<void>;
- organization: string | undefined;
referencedProfiles: T.Dict<Profile>;
ruleDetails: T.RuleDetails;
}
@@ -49,7 +48,6 @@ export default class RuleDetailsProfiles extends React.PureComponent<Props> {
if (key) {
deactivateRule({
key,
- organization: this.props.organization,
rule: this.props.ruleDetails.key
}).then(this.props.onDeactivate, () => {});
}
@@ -59,7 +57,6 @@ export default class RuleDetailsProfiles extends React.PureComponent<Props> {
if (key) {
activateRule({
key,
- organization: this.props.organization,
rule: this.props.ruleDetails.key,
reset: true
}).then(this.props.onActivate, () => {});
@@ -70,11 +67,7 @@ export default class RuleDetailsProfiles extends React.PureComponent<Props> {
if (!profile.parentName) {
return null;
}
- const profilePath = getQualityProfileUrl(
- profile.parentName,
- profile.language,
- this.props.organization
- );
+ const profilePath = getQualityProfileUrl(profile.parentName, profile.language);
return (
<div className="coding-rules-detail-quality-profile-inheritance">
{(activation.inherit === 'OVERRIDES' || activation.inherit === 'INHERITED') && (
@@ -149,7 +142,6 @@ export default class RuleDetailsProfiles extends React.PureComponent<Props> {
className="coding-rules-detail-quality-profile-change"
modalHeader={translate('coding_rules.change_details')}
onDone={this.handleActivate}
- organization={this.props.organization}
profiles={[profile]}
rule={ruleDetails}
/>
@@ -209,9 +201,7 @@ export default class RuleDetailsProfiles extends React.PureComponent<Props> {
return (
<tr data-profile={profile.key} key={profile.key}>
<td className="coding-rules-detail-quality-profile-name">
- <Link to={getQualityProfileUrl(profile.name, profile.language, this.props.organization)}>
- {profile.name}
- </Link>
+ <Link to={getQualityProfileUrl(profile.name, profile.language)}>{profile.name}</Link>
{profile.isBuiltIn && <BuiltInQualityProfileBadge className="spacer-left" />}
{this.renderInheritedProfile(activation, profile)}
</td>
@@ -244,7 +234,6 @@ export default class RuleDetailsProfiles extends React.PureComponent<Props> {
className="coding-rules-quality-profile-activate spacer-left"
modalHeader={translate('coding_rules.activate_in_quality_profile')}
onDone={this.handleActivate}
- organization={this.props.organization}
profiles={filter(
this.props.referencedProfiles,
profile => !activations.find(activation => activation.qProfile === profile.key)
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsTagsPopup.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsTagsPopup.tsx
index 7cc9c218bab..bd400955e4d 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsTagsPopup.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleDetailsTagsPopup.tsx
@@ -23,7 +23,6 @@ import { getRuleTags } from '../../../api/rules';
import TagsSelector from '../../../components/tags/TagsSelector';
export interface Props {
- organization: string | undefined;
setTags: (tags: string[]) => void;
sysTags: string[];
tags: string[];
@@ -50,8 +49,7 @@ export default class RuleDetailsTagsPopup extends React.PureComponent<Props, Sta
onSearch = (query: string) => {
return getRuleTags({
q: query,
- ps: Math.min(this.props.tags.length + LIST_SIZE, 100),
- organization: this.props.organization
+ ps: Math.min(this.props.tags.length + LIST_SIZE, 100)
}).then(
tags => {
if (this.mounted) {
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx
index abb2299c78c..790781c5afa 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/RuleListItem.tsx
@@ -158,7 +158,6 @@ export default class RuleListItem extends React.PureComponent<Props> {
className="coding-rules-detail-quality-profile-activate"
modalHeader={translate('coding_rules.activate_in_quality_profile')}
onDone={this.handleActivate}
- organization={this.props.organization}
profiles={[selectedProfile]}
rule={rule}
/>
@@ -209,7 +208,7 @@ export default class RuleListItem extends React.PureComponent<Props> {
<Link
className="link-no-underline"
onClick={this.handleNameClick}
- to={getRuleUrl(rule.key, this.props.organization)}>
+ to={getRuleUrl(rule.key)}>
{rule.name}
</Link>
{rule.isTemplate && (
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/ActivationFormModal-test.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/ActivationFormModal-test.tsx
index e44bdfa1499..9c33e1c6619 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/ActivationFormModal-test.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/ActivationFormModal-test.tsx
@@ -29,7 +29,6 @@ it('render correctly', () => {
modalHeader="title"
onClose={jest.fn()}
onDone={jest.fn()}
- organization="foo"
profiles={[mockQualityProfile()]}
rule={mockRule()}
/>
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/App-test.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/App-test.tsx
index 52816f2bc1a..bb659eca8e7 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/App-test.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/App-test.tsx
@@ -22,7 +22,6 @@ import * as React from 'react';
import { waitAndUpdate } from 'sonar-ui-common/helpers/testUtils';
import { getRulesApp } from '../../../../api/rules';
import ScreenPositionHelper from '../../../../components/common/ScreenPositionHelper';
-import { isSonarCloud } from '../../../../helpers/system';
import {
mockAppState,
mockCurrentUser,
@@ -88,15 +87,6 @@ describe('renderBulkButton', () => {
expect(wrapper.instance().renderBulkButton()).toBeNull();
});
- it('should be null when on SonarCloud and no organization is given', () => {
- (isSonarCloud as jest.Mock).mockReturnValue(true);
-
- const wrapper = shallowRender({
- organization: undefined
- });
- expect(wrapper.instance().renderBulkButton()).toBeNull();
- });
-
it('should be null when the user does not have the sufficient permission', () => {
(getRulesApp as jest.Mock).mockReturnValue({ canWrite: false, repositories: [] });
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/CustomRuleFormModal-test.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/CustomRuleFormModal-test.tsx
index f76474a92f5..1a6c435b931 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/CustomRuleFormModal-test.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/CustomRuleFormModal-test.tsx
@@ -43,7 +43,6 @@ function shallowRender(props: Partial<CustomRuleFormModal['props']> = {}) {
<CustomRuleFormModal
onClose={jest.fn()}
onDone={jest.fn()}
- organization={undefined}
templateRule={{ ...mockRule(), createdAt: 'date', repo: 'squid' }}
{...props}
/>
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetails-test.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetails-test.tsx
index d013ffd87fb..4d74d06e8b1 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetails-test.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetails-test.tsx
@@ -91,7 +91,6 @@ it('should correctly handle tag changes', async () => {
expect(updateRule).toHaveBeenCalledWith({
key: 'squid:S1337',
- organization: undefined,
tags: 'foo,bar'
});
});
@@ -160,7 +159,6 @@ function shallowRender(props: Partial<RuleDetails['props']> = {}) {
onDeactivate={jest.fn()}
onDelete={jest.fn()}
onFilterChange={jest.fn()}
- organization={undefined}
referencedProfiles={{ key: profile }}
referencedRepositories={{
javascript: { key: 'javascript', language: 'js', name: 'SonarAnalyzer' }
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsDescription-test.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsDescription-test.tsx
index 8c3272617cf..a616e5c53c0 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsDescription-test.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsDescription-test.tsx
@@ -82,12 +82,6 @@ it('should add extra description', async () => {
function getWrapper(props = {}) {
return shallow(
- <RuleDetailsDescription
- canWrite={false}
- onChange={jest.fn()}
- organization={undefined}
- ruleDetails={RULE}
- {...props}
- />
+ <RuleDetailsDescription canWrite={false} onChange={jest.fn()} ruleDetails={RULE} {...props} />
);
}
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsIssues-test.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsIssues-test.tsx
index 2f5a411e1eb..035ee726cde 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsIssues-test.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsIssues-test.tsx
@@ -49,7 +49,6 @@ it('should fetch issues and render', async () => {
expect(wrapper).toMatchSnapshot();
expect(getFacet).toBeCalledWith(
{
- organization: 'org',
resolved: 'false',
rules: 'foo'
},
@@ -61,7 +60,6 @@ function shallowRender(props: Partial<RuleDetailsIssues['props']> = {}) {
return shallow(
<RuleDetailsIssues
appState={{ branchesEnabled: false }}
- organization="org"
ruleDetails={{ key: 'foo', type: 'BUG' }}
{...props}
/>
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsMeta-test.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsMeta-test.tsx
index 745a7bf8507..8757e934cd8 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsMeta-test.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsMeta-test.tsx
@@ -91,7 +91,6 @@ function shallowRender(props: Partial<RuleDetailsMeta['props']> = {}) {
canWrite={true}
onFilterChange={jest.fn()}
onTagsChange={jest.fn()}
- organization={undefined}
referencedRepositories={{}}
ruleDetails={RULE}
{...props}
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsTagsPopup-test.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsTagsPopup-test.tsx
index c4410f809d6..1088b27887e 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsTagsPopup-test.tsx
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/RuleDetailsTagsPopup-test.tsx
@@ -34,7 +34,7 @@ it('should render tags', () => {
it('should search tags', async () => {
const wrapper = shallowRender();
wrapper.prop<Function>('onSearch')('sys');
- expect(getRuleTags).toBeCalledWith({ organization: 'org', ps: 11, q: 'sys' });
+ expect(getRuleTags).toBeCalledWith({ ps: 11, q: 'sys' });
await new Promise(setImmediate);
wrapper.update();
// should not contain system tags
@@ -54,12 +54,6 @@ it('should select & unselect tags', () => {
function shallowRender(props?: Partial<Props>) {
return shallow(
- <RuleDetailsTagsPopup
- organization="org"
- setTags={jest.fn()}
- sysTags={['system']}
- tags={['foo']}
- {...props}
- />
+ <RuleDetailsTagsPopup setTags={jest.fn()} sysTags={['system']} tags={['foo']} {...props} />
);
}
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/App-test.tsx.snap b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/App-test.tsx.snap
index 784261f254b..8339287fb2d 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/App-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/App-test.tsx.snap
@@ -489,7 +489,6 @@ exports[`should render correctly: open rule 1`] = `
onDeactivate={[Function]}
onDelete={[Function]}
onFilterChange={[Function]}
- organization="foo"
referencedProfiles={Object {}}
referencedRepositories={Object {}}
ruleKey="javascript:S1067"
@@ -563,7 +562,6 @@ exports[`should render correctly: using permalink 1`] = `
onDeactivate={[Function]}
onDelete={[Function]}
onFilterChange={[Function]}
- organization="foo"
referencedProfiles={Object {}}
referencedRepositories={Object {}}
ruleKey="javascript:S1067"
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/RuleDetailsIssues-test.tsx.snap b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/RuleDetailsIssues-test.tsx.snap
index 26184fd18db..02049b12c93 100644
--- a/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/RuleDetailsIssues-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/coding-rules/components/__tests__/__snapshots__/RuleDetailsIssues-test.tsx.snap
@@ -23,7 +23,7 @@ exports[`should fetch issues and render 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/org/issues",
+ "pathname": "/issues",
"query": Object {
"resolved": "false",
"rules": "foo",
@@ -64,7 +64,7 @@ exports[`should fetch issues and render 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/org/issues",
+ "pathname": "/issues",
"query": Object {
"projects": "sample-key",
"resolved": "false",
@@ -93,7 +93,7 @@ exports[`should fetch issues and render 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/org/issues",
+ "pathname": "/issues",
"query": Object {
"projects": "example-key",
"resolved": "false",
diff --git a/server/sonar-web/src/main/js/apps/groups/components/__tests__/App-test.tsx b/server/sonar-web/src/main/js/apps/groups/components/__tests__/App-test.tsx
index 56665c6e55a..20eb8a51581 100644
--- a/server/sonar-web/src/main/js/apps/groups/components/__tests__/App-test.tsx
+++ b/server/sonar-web/src/main/js/apps/groups/components/__tests__/App-test.tsx
@@ -182,8 +182,8 @@ it('should refresh correctly', async () => {
wrapper.instance().refresh();
await waitAndUpdate(wrapper);
- expect(searchUsersGroups).toHaveBeenNthCalledWith(1, { organization: undefined, q: query });
- expect(searchUsersGroups).toHaveBeenNthCalledWith(2, { organization: undefined, q: query, p: 2 });
+ expect(searchUsersGroups).toHaveBeenNthCalledWith(1, { q: query });
+ expect(searchUsersGroups).toHaveBeenNthCalledWith(2, { q: query, p: 2 });
});
function shallowRender(props: Partial<App['props']> = {}) {
diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/App.tsx b/server/sonar-web/src/main/js/apps/quality-gates/components/App.tsx
index 9506b773e74..76e2d45004e 100644
--- a/server/sonar-web/src/main/js/apps/quality-gates/components/App.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-gates/components/App.tsx
@@ -93,10 +93,7 @@ class App extends React.PureComponent<Props, State> {
openDefault(qualityGates: T.QualityGate[]) {
const defaultQualityGate = qualityGates.find(gate => Boolean(gate.isDefault))!;
- const { organization } = this.props;
- this.props.router.replace(
- getQualityGateUrl(String(defaultQualityGate.id), organization && organization.key)
- );
+ this.props.router.replace(getQualityGateUrl(String(defaultQualityGate.id)));
}
handleSetDefault = (qualityGate: T.QualityGate) => {
@@ -135,7 +132,7 @@ class App extends React.PureComponent<Props, State> {
refreshQualityGates={this.fetchQualityGates}
/>
<DeferredSpinner loading={this.state.loading}>
- <List organization={organization} qualityGates={qualityGates} />
+ <List qualityGates={qualityGates} />
</DeferredSpinner>
</div>
</div>
diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/CopyQualityGateForm.tsx b/server/sonar-web/src/main/js/apps/quality-gates/components/CopyQualityGateForm.tsx
index 10012f17770..dd727b4a490 100644
--- a/server/sonar-web/src/main/js/apps/quality-gates/components/CopyQualityGateForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-gates/components/CopyQualityGateForm.tsx
@@ -56,7 +56,7 @@ class CopyQualityGateForm extends React.PureComponent<Props, State> {
return copyQualityGate({ id: qualityGate.id, name, organization }).then(qualityGate => {
this.props.onCopy();
- this.props.router.push(getQualityGateUrl(String(qualityGate.id), this.props.organization));
+ this.props.router.push(getQualityGateUrl(String(qualityGate.id)));
});
};
diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/CreateQualityGateForm.tsx b/server/sonar-web/src/main/js/apps/quality-gates/components/CreateQualityGateForm.tsx
index cbad8a41aa1..53f964ee74c 100644
--- a/server/sonar-web/src/main/js/apps/quality-gates/components/CreateQualityGateForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-gates/components/CreateQualityGateForm.tsx
@@ -55,7 +55,7 @@ class CreateQualityGateForm extends React.PureComponent<Props, State> {
return this.props.onCreate().then(() => qualityGate);
})
.then(qualityGate => {
- this.props.router.push(getQualityGateUrl(String(qualityGate.id), organization));
+ this.props.router.push(getQualityGateUrl(String(qualityGate.id)));
});
};
diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/DeleteQualityGateForm.tsx b/server/sonar-web/src/main/js/apps/quality-gates/components/DeleteQualityGateForm.tsx
index a25f3c7c049..0bfaaaf6668 100644
--- a/server/sonar-web/src/main/js/apps/quality-gates/components/DeleteQualityGateForm.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-gates/components/DeleteQualityGateForm.tsx
@@ -38,7 +38,7 @@ class DeleteQualityGateForm extends React.PureComponent<Props> {
return deleteQualityGate({ id: qualityGate.id, organization })
.then(this.props.onDelete)
.then(() => {
- this.props.router.push(getQualityGatesUrl(organization));
+ this.props.router.push(getQualityGatesUrl());
});
};
diff --git a/server/sonar-web/src/main/js/apps/quality-gates/components/List.tsx b/server/sonar-web/src/main/js/apps/quality-gates/components/List.tsx
index 89f751c79dd..8f035870e9d 100644
--- a/server/sonar-web/src/main/js/apps/quality-gates/components/List.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-gates/components/List.tsx
@@ -24,11 +24,10 @@ import { getQualityGateUrl } from '../../../helpers/urls';
import BuiltInQualityGateBadge from './BuiltInQualityGateBadge';
interface Props {
- organization?: string;
qualityGates: T.QualityGate[];
}
-export default function List({ organization, qualityGates }: Props) {
+export default function List({ qualityGates }: Props) {
return (
<div className="list-group">
{qualityGates.map(qualityGate => (
@@ -37,7 +36,7 @@ export default function List({ organization, qualityGates }: Props) {
className="list-group-item display-flex-center"
data-id={qualityGate.id}
key={qualityGate.id}
- to={getQualityGateUrl(String(qualityGate.id), organization)}>
+ to={getQualityGateUrl(String(qualityGate.id))}>
<span className="flex-1">{qualityGate.name}</span>
{qualityGate.isDefault && (
<span className="badge little-spacer-left">{translate('default')}</span>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/Changelog.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/Changelog.tsx
index c91891da0cf..46ad79220e9 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/Changelog.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/Changelog.tsx
@@ -75,9 +75,7 @@ export default function Changelog(props: Props) {
</td>
<td className="quality-profile-changelog-rule-cell">
- <Link to={getRulesUrl({ rule_key: event.ruleKey }, props.organization)}>
- {event.ruleName}
- </Link>
+ <Link to={getRulesUrl({ rule_key: event.ruleKey })}>{event.ruleName}</Link>
</td>
<td>{event.params && <ChangesList changes={event.params} />}</td>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangelogContainer.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangelogContainer.tsx
index 541d876d245..add7cd632a0 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangelogContainer.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/changelog/ChangelogContainer.tsx
@@ -114,24 +114,15 @@ export class ChangelogContainer extends React.PureComponent<Props, State> {
}
handleDateRangeChange = ({ from, to }: { from?: Date; to?: Date }) => {
- const path = getProfileChangelogPath(
- this.props.profile.name,
- this.props.profile.language,
- this.props.organization,
- {
- since: from && toShortNotSoISOString(from),
- to: to && toShortNotSoISOString(to)
- }
- );
+ const path = getProfileChangelogPath(this.props.profile.name, this.props.profile.language, {
+ since: from && toShortNotSoISOString(from),
+ to: to && toShortNotSoISOString(to)
+ });
this.props.router.push(path);
};
handleReset = () => {
- const path = getProfileChangelogPath(
- this.props.profile.name,
- this.props.profile.language,
- this.props.organization
- );
+ const path = getProfileChangelogPath(this.props.profile.name, this.props.profile.language);
this.props.router.push(path);
};
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonContainer.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonContainer.tsx
index b2d430da6ba..bb0f4f290bc 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonContainer.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonContainer.tsx
@@ -79,7 +79,6 @@ class ComparisonContainer extends React.PureComponent<Props, State> {
const path = getProfileComparePath(
this.props.profile.name,
this.props.profile.language,
- this.props.organization,
withKey
);
this.props.router.push(path);
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResultActivation.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResultActivation.tsx
index 00eba49aa2c..372feb8805f 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResultActivation.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResultActivation.tsx
@@ -97,7 +97,6 @@ export default class ComparisonResultActivation extends React.PureComponent<Prop
modalHeader={translate('coding_rules.activate_in_quality_profile')}
onClose={this.handleCloseModal}
onDone={this.props.onDone}
- organization={this.props.organization}
profiles={[profile]}
rule={this.state.rule}
/>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx
index 1285c574fce..40fc7548ab3 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/compare/ComparisonResults.tsx
@@ -42,9 +42,7 @@ export default class ComparisonResults extends React.PureComponent<Props> {
return (
<div>
<SeverityIcon severity={severity} />{' '}
- <Link to={getRulesUrl({ rule_key: rule.key, open: rule.key }, this.props.organization)}>
- {rule.name}
- </Link>
+ <Link to={getRulesUrl({ rule_key: rule.key, open: rule.key })}>{rule.name}</Link>
</div>
);
}
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileActions.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileActions.tsx
index aa960dad0a9..97cc0ce6048 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileActions.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileActions.tsx
@@ -28,7 +28,7 @@ import { Router, withRouter } from '../../../components/hoc/withRouter';
import { getBaseUrl } from '../../../helpers/system';
import { getRulesUrl } from '../../../helpers/urls';
import { Profile } from '../types';
-import { getProfileComparePath, getProfilePath, getProfilesPath } from '../utils';
+import { getProfileComparePath, getProfilePath, PROFILE_PATH } from '../utils';
import CopyProfileForm from './CopyProfileForm';
import DeleteProfileForm from './DeleteProfileForm';
import ExtendProfileForm from './ExtendProfileForm';
@@ -96,7 +96,7 @@ export class ProfileActions extends React.PureComponent<Props, State> {
};
handleProfileDelete = () => {
- this.props.router.replace(getProfilesPath(this.props.organization));
+ this.props.router.replace(PROFILE_PATH);
this.props.updateProfiles();
};
@@ -110,9 +110,7 @@ export class ProfileActions extends React.PureComponent<Props, State> {
this.props.updateProfiles().then(
() => {
if (!this.props.fromList) {
- this.props.router.replace(
- getProfilePath(name, this.props.profile.language, this.props.organization)
- );
+ this.props.router.replace(getProfilePath(name, this.props.profile.language));
}
},
() => {}
@@ -126,9 +124,7 @@ export class ProfileActions extends React.PureComponent<Props, State> {
navigateToNewProfile = (name: string) => {
this.props.updateProfiles().then(
() => {
- this.props.router.push(
- getProfilePath(name, this.props.profile.language, this.props.organization)
- );
+ this.props.router.push(getProfilePath(name, this.props.profile.language));
},
() => {}
);
@@ -140,13 +136,10 @@ export class ProfileActions extends React.PureComponent<Props, State> {
const backupUrl = `${getBaseUrl()}${getQualityProfileBackupUrl(profile)}`;
- const activateMoreUrl = getRulesUrl(
- {
- qprofile: profile.key,
- activation: 'false'
- },
- this.props.organization
- );
+ const activateMoreUrl = getRulesUrl({
+ qprofile: profile.key,
+ activation: 'false'
+ });
return (
<>
@@ -165,8 +158,7 @@ export class ProfileActions extends React.PureComponent<Props, State> {
</ActionsDropdownItem>
)}
- <ActionsDropdownItem
- to={getProfileComparePath(profile.name, profile.language, this.props.organization)}>
+ <ActionsDropdownItem to={getProfileComparePath(profile.name, profile.language)}>
<span data-test="quality-profiles__compare">{translate('compare')}</span>
</ActionsDropdownItem>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileContainer.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileContainer.tsx
index c0d7e479073..0d5c32e155b 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileContainer.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileContainer.tsx
@@ -62,7 +62,7 @@ export default class ProfileContainer extends React.PureComponent<Props & WithRo
// then we will be redirected in `componentDidMount`
// otherwise show `ProfileNotFound`
const profile = profiles.find(profile => profile.key === location.query.key);
- return profile ? null : <ProfileNotFound organization={organization} />;
+ return profile ? null : <ProfileNotFound />;
}
const profile = profiles.find(
@@ -70,7 +70,7 @@ export default class ProfileContainer extends React.PureComponent<Props & WithRo
);
if (!profile) {
- return <ProfileNotFound organization={organization} />;
+ return <ProfileNotFound />;
}
const child = React.cloneElement(this.props.children, {
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileLink.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileLink.tsx
index 8bcc84d3607..83d300ace8b 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileLink.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileLink.tsx
@@ -26,15 +26,11 @@ interface Props {
children?: React.ReactElement<any> | string;
language: string;
name: string;
- organization: string | null;
}
-export default function ProfileLink({ name, language, organization, children, ...other }: Props) {
+export default function ProfileLink({ name, language, children, ...other }: Props) {
return (
- <Link
- activeClassName="link-no-underline"
- to={getProfilePath(name, language, organization)}
- {...other}>
+ <Link activeClassName="link-no-underline" to={getProfilePath(name, language)} {...other}>
{children}
</Link>
);
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileNotFound.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileNotFound.tsx
index 33294f46bcf..b3260e0b551 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileNotFound.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/ProfileNotFound.tsx
@@ -20,17 +20,13 @@
import * as React from 'react';
import { IndexLink } from 'react-router';
import { translate } from 'sonar-ui-common/helpers/l10n';
-import { getProfilesPath } from '../utils';
+import { PROFILE_PATH } from '../utils';
-interface Props {
- organization: string | null;
-}
-
-export default function ProfileNotFound(props: Props) {
+export default function ProfileNotFound() {
return (
<div className="quality-profile-not-found">
<div className="note spacer-bottom">
- <IndexLink className="text-muted" to={getProfilesPath(props.organization)}>
+ <IndexLink className="text-muted" to={PROFILE_PATH}>
{translate('quality_profiles.page')}
</IndexLink>
</div>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/ProfileActions-test.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/ProfileActions-test.tsx
index d7743549ecb..c809cba18c3 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/ProfileActions-test.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/ProfileActions-test.tsx
@@ -36,7 +36,6 @@ const PROFILE = mockQualityProfile({
activeDeprecatedRuleCount: 0,
depth: 0,
language: 'js',
- organization: 'org',
rulesUpdatedAt: '2017-06-28T12:58:44+0000'
});
@@ -83,7 +82,7 @@ it('should copy profile', async () => {
await waitAndUpdate(wrapper);
expect(push).toBeCalledWith({
- pathname: '/organizations/org/quality_profiles/show',
+ pathname: '/profiles/show',
query: { language: 'js', name }
});
expect(wrapper.find('CopyProfileForm').exists()).toBe(false);
@@ -107,7 +106,7 @@ it('should extend profile', async () => {
await waitAndUpdate(wrapper);
expect(push).toBeCalledWith({
- pathname: '/organizations/org/quality_profiles/show',
+ pathname: '/profiles/show',
query: { language: 'js', name }
});
expect(wrapper.find('ExtendProfileForm').exists()).toBe(false);
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/__snapshots__/ProfileActions-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/__snapshots__/ProfileActions-test.tsx.snap
index d630932363d..91ce05a8387 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/__snapshots__/ProfileActions-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/components/__tests__/__snapshots__/ProfileActions-test.tsx.snap
@@ -6,7 +6,7 @@ exports[`renders with all permissions 1`] = `
<ActionsDropdownItem
to={
Object {
- "pathname": "/organizations/org/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "false",
"qprofile": "key",
@@ -22,7 +22,7 @@ exports[`renders with all permissions 1`] = `
</ActionsDropdownItem>
<ActionsDropdownItem
download="key.xml"
- to="/api/qualityprofiles/backup?language=js&qualityProfile=name&organization=org"
+ to="/api/qualityprofiles/backup?language=js&qualityProfile=name&organization=foo"
>
<span
data-test="quality-profiles__backup"
@@ -33,7 +33,7 @@ exports[`renders with all permissions 1`] = `
<ActionsDropdownItem
to={
Object {
- "pathname": "/organizations/org/quality_profiles/compare",
+ "pathname": "/profiles/compare",
"query": Object {
"language": "js",
"name": "name",
@@ -103,7 +103,7 @@ exports[`renders with no permissions 1`] = `
<ActionsDropdown>
<ActionsDropdownItem
download="key.xml"
- to="/api/qualityprofiles/backup?language=js&qualityProfile=name&organization=org"
+ to="/api/qualityprofiles/backup?language=js&qualityProfile=name&organization=foo"
>
<span
data-test="quality-profiles__backup"
@@ -114,7 +114,7 @@ exports[`renders with no permissions 1`] = `
<ActionsDropdownItem
to={
Object {
- "pathname": "/organizations/org/quality_profiles/compare",
+ "pathname": "/profiles/compare",
"query": Object {
"language": "js",
"name": "name",
@@ -138,7 +138,7 @@ exports[`renders with permission to edit only 1`] = `
<ActionsDropdownItem
to={
Object {
- "pathname": "/organizations/org/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "false",
"qprofile": "key",
@@ -154,7 +154,7 @@ exports[`renders with permission to edit only 1`] = `
</ActionsDropdownItem>
<ActionsDropdownItem
download="key.xml"
- to="/api/qualityprofiles/backup?language=js&qualityProfile=name&organization=org"
+ to="/api/qualityprofiles/backup?language=js&qualityProfile=name&organization=foo"
>
<span
data-test="quality-profiles__backup"
@@ -165,7 +165,7 @@ exports[`renders with permission to edit only 1`] = `
<ActionsDropdownItem
to={
Object {
- "pathname": "/organizations/org/quality_profiles/compare",
+ "pathname": "/profiles/compare",
"query": Object {
"language": "js",
"name": "name",
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileHeader.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileHeader.tsx
index 92fcf9f4a8f..d31cede4577 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileHeader.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileHeader.tsx
@@ -25,7 +25,7 @@ import BuiltInQualityProfileBadge from '../components/BuiltInQualityProfileBadge
import ProfileActions from '../components/ProfileActions';
import ProfileLink from '../components/ProfileLink';
import { Profile } from '../types';
-import { getProfileChangelogPath, getProfilesForLanguagePath, getProfilesPath } from '../utils';
+import { getProfileChangelogPath, getProfilesForLanguagePath, PROFILE_PATH } from '../utils';
interface Props {
profile: Profile;
@@ -40,23 +40,17 @@ export default class ProfileHeader extends React.PureComponent<Props> {
return (
<header className="page-header quality-profile-header">
<div className="note spacer-bottom">
- <IndexLink className="text-muted" to={getProfilesPath(organization)}>
+ <IndexLink className="text-muted" to={PROFILE_PATH}>
{translate('quality_profiles.page')}
</IndexLink>
{' / '}
- <Link
- className="text-muted"
- to={getProfilesForLanguagePath(profile.language, organization)}>
+ <Link className="text-muted" to={getProfilesForLanguagePath(profile.language)}>
{profile.languageName}
</Link>
</div>
<h1 className="page-title">
- <ProfileLink
- className="link-base-color"
- language={profile.language}
- name={profile.name}
- organization={organization}>
+ <ProfileLink className="link-base-color" language={profile.language} name={profile.name}>
<span>{profile.name}</span>
</ProfileLink>
{profile.isBuiltIn && (
@@ -73,9 +67,7 @@ export default class ProfileHeader extends React.PureComponent<Props> {
{translate('quality_profiles.used_')} <DateFromNow date={profile.lastUsed} />
</li>
<li>
- <Link
- className="button"
- to={getProfileChangelogPath(profile.name, profile.language, organization)}>
+ <Link className="button" to={getProfileChangelogPath(profile.name, profile.language)}>
{translate('changelog')}
</Link>
</li>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritanceBox.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritanceBox.tsx
index 19a4fd83285..5e0286d83ce 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritanceBox.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileInheritanceBox.tsx
@@ -40,7 +40,6 @@ export default function ProfileInheritanceBox(props: Props) {
depth,
extendsBuiltIn,
language,
- organization,
profile,
displayLink = true,
type = 'current'
@@ -52,11 +51,7 @@ export default function ProfileInheritanceBox(props: Props) {
<td>
<div style={{ paddingLeft: offset }}>
{displayLink ? (
- <ProfileLink
- className="text-middle"
- language={language}
- name={profile.name}
- organization={organization}>
+ <ProfileLink className="text-middle" language={language} name={profile.name}>
{profile.name}
</ProfileLink>
) : (
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx
index 5119f24816d..be27679c109 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRules.tsx
@@ -145,10 +145,7 @@ export default class ProfileRules extends React.PureComponent<Props, State> {
render() {
const { organization, profile } = this.props;
const { compareToSonarWay } = this.state;
- const activateMoreUrl = getRulesUrl(
- { qprofile: profile.key, activation: 'false' },
- organization
- );
+ const activateMoreUrl = getRulesUrl({ qprofile: profile.key, activation: 'false' });
const { actions = {} } = profile;
return (
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesDeprecatedWarning.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesDeprecatedWarning.tsx
index 84a7bec9255..abb61aef348 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesDeprecatedWarning.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesDeprecatedWarning.tsx
@@ -39,9 +39,7 @@ export default function ProfileRulesDeprecatedWarning(props: Props) {
overlay={translate('quality_profiles.deprecated_rules_description')}
/>
</span>
- <Link
- className="pull-right"
- to={getDeprecatedActiveRulesUrl({ qprofile: props.profile }, props.organization)}>
+ <Link className="pull-right" to={getDeprecatedActiveRulesUrl({ qprofile: props.profile })}>
{props.activeDeprecatedRules}
</Link>
</div>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesRowOfType.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesRowOfType.tsx
index 8b61d2c2fd1..29d56d4352e 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesRowOfType.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesRowOfType.tsx
@@ -33,14 +33,16 @@ interface Props {
}
export default function ProfileRulesRowOfType(props: Props) {
- const activeRulesUrl = getRulesUrl(
- { qprofile: props.qprofile, activation: 'true', types: props.type },
- props.organization
- );
- const inactiveRulesUrl = getRulesUrl(
- { qprofile: props.qprofile, activation: 'false', types: props.type },
- props.organization
- );
+ const activeRulesUrl = getRulesUrl({
+ qprofile: props.qprofile,
+ activation: 'true',
+ types: props.type
+ });
+ const inactiveRulesUrl = getRulesUrl({
+ qprofile: props.qprofile,
+ activation: 'false',
+ types: props.type
+ });
let inactiveCount = null;
if (props.count != null && props.total != null) {
inactiveCount = props.total - props.count;
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesRowTotal.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesRowTotal.tsx
index 137174d10b2..545657afa81 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesRowTotal.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesRowTotal.tsx
@@ -31,14 +31,8 @@ interface Props {
}
export default function ProfileRulesRowTotal(props: Props) {
- const activeRulesUrl = getRulesUrl(
- { qprofile: props.qprofile, activation: 'true' },
- props.organization
- );
- const inactiveRulesUrl = getRulesUrl(
- { qprofile: props.qprofile, activation: 'false' },
- props.organization
- );
+ const activeRulesUrl = getRulesUrl({ qprofile: props.qprofile, activation: 'true' });
+ const inactiveRulesUrl = getRulesUrl({ qprofile: props.qprofile, activation: 'false' });
let inactiveCount = null;
if (props.count != null && props.total != null) {
inactiveCount = props.total - props.count;
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesSonarWayComparison.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesSonarWayComparison.tsx
index 25c09916a6f..451bd52c559 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesSonarWayComparison.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ProfileRulesSonarWayComparison.tsx
@@ -32,15 +32,12 @@ interface Props {
}
export default function ProfileRulesSonarWayComparison(props: Props) {
- const url = getRulesUrl(
- {
- qprofile: props.profile,
- activation: 'false',
- compareToProfile: props.sonarway,
- languages: props.language
- },
- props.organization
- );
+ const url = getRulesUrl({
+ qprofile: props.profile,
+ activation: 'false',
+ compareToProfile: props.sonarway,
+ languages: props.language
+ });
return (
<div className="quality-profile-rules-sonarway-missing clearfix">
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileHeader-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileHeader-test.tsx.snap
index 12132420745..98639139637 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileHeader-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileHeader-test.tsx.snap
@@ -9,7 +9,7 @@ exports[`should render correctly 1`] = `
>
<IndexLink
className="text-muted"
- to="/organizations/foo/quality_profiles"
+ to="/profiles"
>
quality_profiles.page
</IndexLink>
@@ -20,7 +20,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/quality_profiles",
+ "pathname": "/profiles",
"query": Object {
"language": "js",
},
@@ -37,7 +37,6 @@ exports[`should render correctly 1`] = `
className="link-base-color"
language="js"
name="name"
- organization="foo"
>
<span>
name
@@ -76,7 +75,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/quality_profiles/changelog",
+ "pathname": "/profiles/changelog",
"query": Object {
"language": "js",
"name": "name",
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileInheritanceBox-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileInheritanceBox-test.tsx.snap
index 934da5e4adb..c42184e6a85 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileInheritanceBox-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileInheritanceBox-test.tsx.snap
@@ -16,7 +16,6 @@ exports[`should render correctly 1`] = `
className="text-middle"
language="foo"
name="Foo"
- organization={null}
>
Foo
</ProfileLink>
@@ -49,7 +48,6 @@ exports[`should render correctly 2`] = `
className="text-middle"
language="foo"
name="Foo"
- organization={null}
>
Foo
</ProfileLink>
@@ -85,7 +83,6 @@ exports[`should render correctly 3`] = `
className="text-middle"
language="foo"
name="Foo"
- organization={null}
>
Foo
</ProfileLink>
@@ -122,7 +119,6 @@ exports[`should render correctly 4`] = `
className="text-middle"
language="foo"
name="Foo"
- organization={null}
>
Foo
</ProfileLink>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRules-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRules-test.tsx.snap
index 9f3047b1321..640d9cecb70 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRules-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRules-test.tsx.snap
@@ -84,7 +84,7 @@ exports[`should show a button to activate more rules for admins 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "false",
"qprofile": "key",
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesDeprecatedWarning-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesDeprecatedWarning-test.tsx.snap
index 308c513f84f..4a03b4e8a41 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesDeprecatedWarning-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesDeprecatedWarning-test.tsx.snap
@@ -23,7 +23,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "true",
"qprofile": "bar",
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesRowOfType-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesRowOfType-test.tsx.snap
index 1a879d91adf..c9bbffe4449 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesRowOfType-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesRowOfType-test.tsx.snap
@@ -19,7 +19,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "true",
"qprofile": "bar",
@@ -40,7 +40,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "false",
"qprofile": "bar",
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesRowTotal-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesRowTotal-test.tsx.snap
index 05ad9a31580..226dd57670d 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesRowTotal-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesRowTotal-test.tsx.snap
@@ -15,7 +15,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "true",
"qprofile": "bar",
@@ -37,7 +37,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "false",
"qprofile": "bar",
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesSonarWayComparison-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesSonarWayComparison-test.tsx.snap
index 69d5092c589..6567a60b75e 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesSonarWayComparison-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/__tests__/__snapshots__/ProfileRulesSonarWayComparison-test.tsx.snap
@@ -24,7 +24,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "false",
"compareToProfile": "baz",
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionDeprecated.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionDeprecated.tsx
index 6360bcca0d7..03bbae3a26c 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionDeprecated.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionDeprecated.tsx
@@ -124,8 +124,7 @@ export default class EvolutionDeprecated extends React.PureComponent<Props> {
<ProfileLink
className="link-no-underline"
language={profile.language}
- name={profile.name}
- organization={this.props.organization}>
+ name={profile.name}>
{profile.name}
</ProfileLink>
</div>
@@ -134,10 +133,7 @@ export default class EvolutionDeprecated extends React.PureComponent<Props> {
{', '}
<Link
className="text-muted"
- to={getDeprecatedActiveRulesUrl(
- { qprofile: profile.key },
- this.props.organization
- )}>
+ to={getDeprecatedActiveRulesUrl({ qprofile: profile.key })}>
{translateWithParameters(
'quality_profile.x_rules',
profile.activeDeprecatedRuleCount
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx
index 546633be6ae..8e5cf98a4ad 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx
@@ -97,10 +97,7 @@ export default class EvolutionRules extends React.PureComponent<Props, State> {
return null;
}
- const newRulesUrl = getRulesUrl(
- { available_since: this.periodStartDate },
- this.props.organization
- );
+ const newRulesUrl = getRulesUrl({ available_since: this.periodStartDate });
return (
<div className="boxed-group boxed-group-inner quality-profiles-evolution-rules">
@@ -111,9 +108,7 @@ export default class EvolutionRules extends React.PureComponent<Props, State> {
{this.state.latestRules.map(rule => (
<li className="spacer-top" key={rule.key}>
<div className="text-ellipsis">
- <Link
- className="link-no-underline"
- to={getRulesUrl({ rule_key: rule.key }, this.props.organization)}>
+ <Link className="link-no-underline" to={getRulesUrl({ rule_key: rule.key })}>
{' '}
{rule.name}
</Link>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionStagnant.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionStagnant.tsx
index fa76b87d003..b474f52b6d8 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionStagnant.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionStagnant.tsx
@@ -51,8 +51,7 @@ export default function EvolutionStagnant(props: Props) {
<ProfileLink
className="link-no-underline"
language={profile.language}
- name={profile.name}
- organization={props.organization}>
+ name={profile.name}>
{profile.name}
</ProfileLink>
</div>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/PageHeader.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/PageHeader.tsx
index a4726522c1c..f1fce30d314 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/PageHeader.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/PageHeader.tsx
@@ -57,9 +57,7 @@ export class PageHeader extends React.PureComponent<Props, State> {
handleCreate = (profile: Profile) => {
this.props.updateProfiles().then(
() => {
- this.props.router.push(
- getProfilePath(profile.name, profile.language, this.props.organization)
- );
+ this.props.router.push(getProfilePath(profile.name, profile.language));
},
() => {}
);
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.tsx
index f6f39ea33f9..02958c6ce28 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesList.tsx
@@ -113,11 +113,7 @@ export default class ProfilesList extends React.PureComponent<Props> {
return (
<div>
- <ProfilesListHeader
- currentFilter={language}
- languages={languages}
- organization={this.props.organization}
- />
+ <ProfilesListHeader currentFilter={language} languages={languages} />
{Object.keys(profilesToShow).length === 0 && (
<Alert className="spacer-top" variant="warning">
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListHeader.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListHeader.tsx
index 1704b24d590..c9d91383ba2 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListHeader.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListHeader.tsx
@@ -21,24 +21,19 @@ import * as React from 'react';
import Select from 'sonar-ui-common/components/controls/Select';
import { translate } from 'sonar-ui-common/helpers/l10n';
import { Router, withRouter } from '../../../components/hoc/withRouter';
-import { getProfilesForLanguagePath, getProfilesPath } from '../utils';
+import { getProfilesForLanguagePath, PROFILE_PATH } from '../utils';
interface Props {
currentFilter?: string;
languages: Array<{ key: string; name: string }>;
- organization: string | null;
router: Pick<Router, 'replace'>;
}
export class ProfilesListHeader extends React.PureComponent<Props> {
handleChange = (option: { value: string } | null) => {
- const { organization, router } = this.props;
+ const { router } = this.props;
- router.replace(
- !option
- ? getProfilesPath(organization)
- : getProfilesForLanguagePath(option.value, organization)
- );
+ router.replace(!option ? PROFILE_PATH : getProfilesForLanguagePath(option.value));
};
render() {
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListRow.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListRow.tsx
index 3ea27dcec1f..4d4776efbc9 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListRow.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/ProfilesListRow.tsx
@@ -38,21 +38,15 @@ export function ProfilesListRow(props: ProfilesListRowProps) {
const { organization, profile } = props;
const offset = 25 * (profile.depth - 1);
- const activeRulesUrl = getRulesUrl(
- {
- qprofile: profile.key,
- activation: 'true'
- },
- organization
- );
- const deprecatedRulesUrl = getRulesUrl(
- {
- qprofile: profile.key,
- activation: 'true',
- statuses: 'DEPRECATED'
- },
- organization
- );
+ const activeRulesUrl = getRulesUrl({
+ qprofile: profile.key,
+ activation: 'true'
+ });
+ const deprecatedRulesUrl = getRulesUrl({
+ qprofile: profile.key,
+ activation: 'true',
+ statuses: 'DEPRECATED'
+ });
return (
<tr
@@ -62,10 +56,7 @@ export function ProfilesListRow(props: ProfilesListRowProps) {
<td className="quality-profiles-table-name text-middle">
<div className="display-flex-center" style={{ paddingLeft: offset }}>
<div>
- <ProfileLink
- language={profile.language}
- name={profile.name}
- organization={organization}>
+ <ProfileLink language={profile.language} name={profile.name}>
{profile.name}
</ProfileLink>
</div>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/ProfilesListHeader-test.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/ProfilesListHeader-test.tsx
index 51be4be6abc..5f70c331b2f 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/ProfilesListHeader-test.tsx
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/ProfilesListHeader-test.tsx
@@ -34,7 +34,6 @@ function shallowRender(props: Partial<ProfilesListHeader['props']> = {}) {
{ key: 'js', name: 'JavaScript' },
{ key: 'java', name: 'Java' }
]}
- organization="foo"
router={mockRouter()}
{...props}
/>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/EvolutionDeprecated-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/EvolutionDeprecated-test.tsx.snap
index 9c1ab50b7e8..62a80256ecb 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/EvolutionDeprecated-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/EvolutionDeprecated-test.tsx.snap
@@ -28,7 +28,6 @@ exports[`should render correctly 1`] = `
className="link-no-underline"
language="js"
name="Quality Profile 5"
- organization="foo"
>
Quality Profile 5
</ProfileLink>
@@ -44,7 +43,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "true",
"qprofile": "qp-5",
@@ -82,7 +81,6 @@ exports[`should render correctly 1`] = `
className="link-no-underline"
language="js"
name="Quality Profile 4"
- organization="foo"
>
Quality Profile 4
</ProfileLink>
@@ -98,7 +96,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "true",
"qprofile": "qp-4",
@@ -129,7 +127,6 @@ exports[`should render correctly 1`] = `
className="link-no-underline"
language="js"
name="Quality Profile 2"
- organization="foo"
>
Quality Profile 2
</ProfileLink>
@@ -145,7 +142,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "true",
"qprofile": "qp-2",
@@ -169,7 +166,6 @@ exports[`should render correctly 1`] = `
className="link-no-underline"
language="js"
name="Quality Profile 3"
- organization="foo"
>
Quality Profile 3
</ProfileLink>
@@ -185,7 +181,7 @@ exports[`should render correctly 1`] = `
style={Object {}}
to={
Object {
- "pathname": "/organizations/foo/rules",
+ "pathname": "/coding_rules",
"query": Object {
"activation": "true",
"qprofile": "qp-3",
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/ProfilesList-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/ProfilesList-test.tsx.snap
index e374ba8697e..c1462384945 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/ProfilesList-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/ProfilesList-test.tsx.snap
@@ -15,7 +15,6 @@ exports[`should render correctly 1`] = `
},
]
}
- organization="foo"
/>
<div
className="boxed-group boxed-group-inner quality-profiles-table"
@@ -188,7 +187,6 @@ exports[`should render correctly 2`] = `
},
]
}
- organization="foo"
/>
<div
className="boxed-group boxed-group-inner quality-profiles-table"
@@ -285,7 +283,6 @@ exports[`should render correctly 3`] = `
},
]
}
- organization="foo"
/>
<Alert
className="spacer-top"
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/ProfilesListRow-test.tsx.snap b/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/ProfilesListRow-test.tsx.snap
index 9d4c7e133e0..55b7bfdb837 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/ProfilesListRow-test.tsx.snap
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/__tests__/__snapshots__/ProfilesListRow-test.tsx.snap
@@ -21,7 +21,6 @@ exports[`should render correctly: built-in profile 1`] = `
<ProfileLink
language="js"
name="name"
- organization={null}
>
name
</ProfileLink>
@@ -144,7 +143,6 @@ exports[`should render correctly: default 1`] = `
<ProfileLink
language="js"
name="name"
- organization={null}
>
name
</ProfileLink>
@@ -239,7 +237,6 @@ exports[`should render correctly: default profile 1`] = `
<ProfileLink
language="js"
name="name"
- organization={null}
>
name
</ProfileLink>
@@ -365,7 +362,6 @@ exports[`should render correctly: with deprecated rules 1`] = `
<ProfileLink
language="js"
name="name"
- organization={null}
>
name
</ProfileLink>
diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/utils.ts b/server/sonar-web/src/main/js/apps/quality-profiles/utils.ts
index f428c13b594..a8e43c37c2e 100644
--- a/server/sonar-web/src/main/js/apps/quality-profiles/utils.ts
+++ b/server/sonar-web/src/main/js/apps/quality-profiles/utils.ts
@@ -62,38 +62,25 @@ export function isStagnant(profile: Profile): boolean {
return false;
}
-export const getProfilesPath = (organization: string | null | undefined) =>
- organization ? `/organizations/${organization}/quality_profiles` : '/profiles';
+export const PROFILE_PATH = '/profiles';
-export const getProfilesForLanguagePath = (
- language: string,
- organization: string | null | undefined
-) => ({
- pathname: getProfilesPath(organization),
+export const getProfilesForLanguagePath = (language: string) => ({
+ pathname: PROFILE_PATH,
query: { language }
});
-export const getProfilePath = (
- name: string,
- language: string,
- organization: string | null | undefined
-) => ({
- pathname: getProfilesPath(organization) + '/show',
+export const getProfilePath = (name: string, language: string) => ({
+ pathname: `${PROFILE_PATH}/show`,
query: { name, language }
});
-export const getProfileComparePath = (
- name: string,
- language: string,
- organization: string | null | undefined,
- withKey?: string
-) => {
+export const getProfileComparePath = (name: string, language: string, withKey?: string) => {
const query = { language, name };
if (withKey) {
Object.assign(query, { withKey });
}
return {
- pathname: getProfilesPath(organization) + '/compare',
+ pathname: `${PROFILE_PATH}/compare`,
query
};
};
@@ -101,7 +88,6 @@ export const getProfileComparePath = (
export const getProfileChangelogPath = (
name: string,
language: string,
- organization: string | null | undefined,
filter?: { since?: string; to?: string }
) => {
const query = { language, name };
@@ -114,7 +100,7 @@ export const getProfileChangelogPath = (
}
}
return {
- pathname: getProfilesPath(organization) + '/changelog',
+ pathname: `${PROFILE_PATH}/changelog`,
query
};
};
diff --git a/server/sonar-web/src/main/js/apps/users/components/GroupsForm.tsx b/server/sonar-web/src/main/js/apps/users/components/GroupsForm.tsx
index 69eaa6172db..587c17e939c 100644
--- a/server/sonar-web/src/main/js/apps/users/components/GroupsForm.tsx
+++ b/server/sonar-web/src/main/js/apps/users/components/GroupsForm.tsx
@@ -66,7 +66,6 @@ export default class GroupsForm extends React.PureComponent<Props, State> {
fetchUsers = (searchParams: SelectListSearchParams) =>
getUserGroups({
login: this.props.user.login,
- organization: undefined,
p: searchParams.page,
ps: searchParams.pageSize,
q: searchParams.query !== '' ? searchParams.query : undefined,
diff --git a/server/sonar-web/src/main/js/apps/users/components/__tests__/GroupsForm-test.tsx b/server/sonar-web/src/main/js/apps/users/components/__tests__/GroupsForm-test.tsx
index e2341abf6dc..83f51bfae22 100644
--- a/server/sonar-web/src/main/js/apps/users/components/__tests__/GroupsForm-test.tsx
+++ b/server/sonar-web/src/main/js/apps/users/components/__tests__/GroupsForm-test.tsx
@@ -84,7 +84,6 @@ it('should render correctly', async () => {
expect(getUserGroups).toHaveBeenCalledWith(
expect.objectContaining({
login: user.login,
- organization: undefined,
p: 1,
ps: 100,
q: undefined,
diff --git a/server/sonar-web/src/main/js/components/workspace/WorkspaceRuleDetails.tsx b/server/sonar-web/src/main/js/components/workspace/WorkspaceRuleDetails.tsx
index 91118cb41a0..8bd3a96484d 100644
--- a/server/sonar-web/src/main/js/components/workspace/WorkspaceRuleDetails.tsx
+++ b/server/sonar-web/src/main/js/components/workspace/WorkspaceRuleDetails.tsx
@@ -24,12 +24,9 @@ import { getRuleDetails, getRulesApp } from '../../api/rules';
import RuleDetailsDescription from '../../apps/coding-rules/components/RuleDetailsDescription';
import RuleDetailsMeta from '../../apps/coding-rules/components/RuleDetailsMeta';
import '../../apps/coding-rules/styles.css';
-import { withAppState } from '../hoc/withAppState';
interface Props {
- appState: Pick<T.AppState, 'organizationsEnabled'>;
onLoad: (details: { name: string }) => void;
- organizationKey: string | undefined;
ruleKey: string;
}
@@ -39,7 +36,7 @@ interface State {
ruleDetails?: T.RuleDetails;
}
-export class WorkspaceRuleDetails extends React.PureComponent<Props, State> {
+export default class WorkspaceRuleDetails extends React.PureComponent<Props, State> {
mounted = false;
state: State = { loading: true, referencedRepositories: {} };
@@ -49,10 +46,7 @@ export class WorkspaceRuleDetails extends React.PureComponent<Props, State> {
}
componentDidUpdate(prevProps: Props) {
- if (
- prevProps.ruleKey !== this.props.ruleKey ||
- prevProps.organizationKey !== this.props.organizationKey
- ) {
+ if (prevProps.ruleKey !== this.props.ruleKey) {
this.fetchRuleDetails();
}
}
@@ -63,10 +57,7 @@ export class WorkspaceRuleDetails extends React.PureComponent<Props, State> {
fetchRuleDetails = () => {
this.setState({ loading: true });
- Promise.all([
- getRulesApp(this.props.organizationKey),
- getRuleDetails({ key: this.props.ruleKey, organization: this.props.organizationKey })
- ]).then(
+ Promise.all([getRulesApp(), getRuleDetails({ key: this.props.ruleKey })]).then(
([{ repositories }, { rule }]) => {
if (this.mounted) {
this.setState({
@@ -88,10 +79,6 @@ export class WorkspaceRuleDetails extends React.PureComponent<Props, State> {
noOp = () => {};
render() {
- const { organizationKey } = this.props;
- const { organizationsEnabled } = this.props.appState;
- const organization = organizationsEnabled ? organizationKey : undefined;
-
return (
<DeferredSpinner loading={this.state.loading}>
{this.state.ruleDetails && (
@@ -101,14 +88,12 @@ export class WorkspaceRuleDetails extends React.PureComponent<Props, State> {
hideSimilarRulesFilter={true}
onFilterChange={this.noOp}
onTagsChange={this.noOp}
- organization={organization}
referencedRepositories={this.state.referencedRepositories}
ruleDetails={this.state.ruleDetails}
/>
<RuleDetailsDescription
canWrite={false}
onChange={this.noOp}
- organization={organization}
ruleDetails={this.state.ruleDetails}
/>
</>
@@ -117,5 +102,3 @@ export class WorkspaceRuleDetails extends React.PureComponent<Props, State> {
);
}
}
-
-export default withAppState(WorkspaceRuleDetails);
diff --git a/server/sonar-web/src/main/js/components/workspace/WorkspaceRuleViewer.tsx b/server/sonar-web/src/main/js/components/workspace/WorkspaceRuleViewer.tsx
index 6f2b4a9b551..e5177c79f74 100644
--- a/server/sonar-web/src/main/js/components/workspace/WorkspaceRuleViewer.tsx
+++ b/server/sonar-web/src/main/js/components/workspace/WorkspaceRuleViewer.tsx
@@ -76,11 +76,7 @@ export default class WorkspaceRuleViewer extends React.PureComponent<Props> {
aria-live="polite"
className="workspace-viewer-container"
style={{ height: this.props.height }}>
- <WorkspaceRuleDetails
- onLoad={this.handleLoaded}
- organizationKey={rule.organization}
- ruleKey={rule.key}
- />
+ <WorkspaceRuleDetails onLoad={this.handleLoaded} ruleKey={rule.key} />
</div>
</div>
);
diff --git a/server/sonar-web/src/main/js/components/workspace/__tests__/WorkspaceRuleDetails-test.tsx b/server/sonar-web/src/main/js/components/workspace/__tests__/WorkspaceRuleDetails-test.tsx
index 6cca808d764..2a2ce45c6d1 100644
--- a/server/sonar-web/src/main/js/components/workspace/__tests__/WorkspaceRuleDetails-test.tsx
+++ b/server/sonar-web/src/main/js/components/workspace/__tests__/WorkspaceRuleDetails-test.tsx
@@ -20,7 +20,7 @@
import { shallow } from 'enzyme';
import * as React from 'react';
import { waitAndUpdate } from 'sonar-ui-common/helpers/testUtils';
-import { WorkspaceRuleDetails } from '../WorkspaceRuleDetails';
+import WorkspaceRuleDetails from '../WorkspaceRuleDetails';
jest.mock('../../../api/rules', () => ({
getRulesApp: jest.fn(() =>
@@ -30,14 +30,7 @@ jest.mock('../../../api/rules', () => ({
}));
it('should render', async () => {
- const wrapper = shallow(
- <WorkspaceRuleDetails
- appState={{ organizationsEnabled: false }}
- onLoad={jest.fn()}
- organizationKey={undefined}
- ruleKey="foo"
- />
- );
+ const wrapper = shallowRender();
expect(wrapper).toMatchSnapshot();
await waitAndUpdate(wrapper);
@@ -46,14 +39,13 @@ it('should render', async () => {
it('should call back on load', async () => {
const onLoad = jest.fn();
- const wrapper = shallow(
- <WorkspaceRuleDetails
- appState={{ organizationsEnabled: false }}
- onLoad={onLoad}
- organizationKey={undefined}
- ruleKey="foo"
- />
- );
+ const wrapper = shallowRender({ onLoad });
await waitAndUpdate(wrapper);
expect(onLoad).toBeCalledWith({ name: 'Foo' });
});
+
+function shallowRender(props?: Partial<WorkspaceRuleDetails['props']>) {
+ return shallow<WorkspaceRuleDetails>(
+ <WorkspaceRuleDetails onLoad={jest.fn()} ruleKey="foo" {...props} />
+ );
+}
diff --git a/server/sonar-web/src/main/js/components/workspace/__tests__/__snapshots__/WorkspaceRuleViewer-test.tsx.snap b/server/sonar-web/src/main/js/components/workspace/__tests__/__snapshots__/WorkspaceRuleViewer-test.tsx.snap
index f2515a8cfca..d7d1534c539 100644
--- a/server/sonar-web/src/main/js/components/workspace/__tests__/__snapshots__/WorkspaceRuleViewer-test.tsx.snap
+++ b/server/sonar-web/src/main/js/components/workspace/__tests__/__snapshots__/WorkspaceRuleViewer-test.tsx.snap
@@ -31,9 +31,8 @@ exports[`should render 1`] = `
}
}
>
- <Connect(withAppState(WorkspaceRuleDetails))
+ <WorkspaceRuleDetails
onLoad={[Function]}
- organizationKey="org"
ruleKey="foo"
/>
</div>
diff --git a/server/sonar-web/src/main/js/helpers/__tests__/urls-test.ts b/server/sonar-web/src/main/js/helpers/__tests__/urls-test.ts
index cd229908f90..4e48d39c13a 100644
--- a/server/sonar-web/src/main/js/helpers/__tests__/urls-test.ts
+++ b/server/sonar-web/src/main/js/helpers/__tests__/urls-test.ts
@@ -29,7 +29,6 @@ import {
const SIMPLE_COMPONENT_KEY = 'sonarqube';
const COMPLEX_COMPONENT_KEY = 'org.sonarsource.sonarqube:sonarqube';
-const COMPLEX_COMPONENT_KEY_ENCODED = encodeURIComponent(COMPLEX_COMPONENT_KEY);
const METRIC = 'coverage';
describe('#getComponentIssuesUrl', () => {
@@ -119,19 +118,6 @@ describe('#getComponentDrilldownUrl', () => {
describe('#getQualityGate(s)Url', () => {
it('should take organization key into account', () => {
expect(getQualityGatesUrl()).toEqual({ pathname: '/quality_gates' });
- expect(getQualityGatesUrl('foo')).toEqual({ pathname: '/organizations/foo/quality_gates' });
expect(getQualityGateUrl('bar')).toEqual({ pathname: '/quality_gates/show/bar' });
- expect(getQualityGateUrl('bar', 'foo')).toEqual({
- pathname: '/organizations/foo/quality_gates/show/bar'
- });
- });
-
- it('should encode keys', () => {
- expect(getQualityGatesUrl(COMPLEX_COMPONENT_KEY)).toEqual({
- pathname: '/organizations/' + COMPLEX_COMPONENT_KEY_ENCODED + '/quality_gates'
- });
- expect(getQualityGateUrl(COMPLEX_COMPONENT_KEY)).toEqual({
- pathname: '/quality_gates/show/' + COMPLEX_COMPONENT_KEY_ENCODED
- });
});
});
diff --git a/server/sonar-web/src/main/js/helpers/urls.ts b/server/sonar-web/src/main/js/helpers/urls.ts
index 6678ccad309..ca06577c46d 100644
--- a/server/sonar-web/src/main/js/helpers/urls.ts
+++ b/server/sonar-web/src/main/js/helpers/urls.ts
@@ -178,48 +178,39 @@ export function getComponentPermissionsUrl(componentKey: string): Location {
/**
* Generate URL for a quality profile
*/
-export function getQualityProfileUrl(
- name: string,
- language: string,
- organization?: string | null
-): Location {
- return getProfilePath(name, language, organization);
+export function getQualityProfileUrl(name: string, language: string): Location {
+ return getProfilePath(name, language);
}
-export function getQualityGateUrl(key: string, organization?: string | null): Location {
+export function getQualityGateUrl(key: string): Location {
return {
- pathname: getQualityGatesUrl(organization).pathname + '/show/' + encodeURIComponent(key)
+ pathname: '/quality_gates/show/' + encodeURIComponent(key)
};
}
-export function getQualityGatesUrl(organization?: string | null): Location {
+export function getQualityGatesUrl(): Location {
return {
- pathname:
- (organization ? '/organizations/' + encodeURIComponent(organization) : '') + '/quality_gates'
+ pathname: '/quality_gates'
};
}
/**
* Generate URL for the rules page
*/
-export function getRulesUrl(query: Query, organization: string | null | undefined): Location {
- const pathname = organization ? `/organizations/${organization}/rules` : '/coding_rules';
- return { pathname, query };
+export function getRulesUrl(query: Query): Location {
+ return { pathname: '/coding_rules', query };
}
/**
* Generate URL for the rules page filtering only active deprecated rules
*/
-export function getDeprecatedActiveRulesUrl(
- query: Query = {},
- organization: string | null | undefined
-): Location {
+export function getDeprecatedActiveRulesUrl(query: Query = {}): Location {
const baseQuery = { activation: 'true', statuses: 'DEPRECATED' };
- return getRulesUrl({ ...query, ...baseQuery }, organization);
+ return getRulesUrl({ ...query, ...baseQuery });
}
-export function getRuleUrl(rule: string, organization: string | undefined) {
- return getRulesUrl({ open: rule, rule_key: rule }, organization);
+export function getRuleUrl(rule: string) {
+ return getRulesUrl({ open: rule, rule_key: rule });
}
export function getMarkdownHelpUrl(): string {
diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/organization/MemberUpdater.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/organization/MemberUpdater.java
index 35532d1aafd..6abfa5f6505 100644
--- a/server/sonar-webserver-auth/src/main/java/org/sonar/server/organization/MemberUpdater.java
+++ b/server/sonar-webserver-auth/src/main/java/org/sonar/server/organization/MemberUpdater.java
@@ -137,7 +137,6 @@ public class MemberUpdater {
String organizationUuid = organization.getUuid();
dbClient.userPermissionDao().deleteOrganizationMemberPermissions(dbSession, organizationUuid, userUuid);
dbClient.permissionTemplateDao().deleteUserPermissionsByOrganization(dbSession, organizationUuid, userUuid);
- dbClient.qProfileEditUsersDao().deleteByOrganizationAndUser(dbSession, organization, user);
dbClient.userGroupDao().deleteByOrganizationAndUser(dbSession, organizationUuid, userUuid);
dbClient.propertiesDao().deleteByOrganizationAndUser(dbSession, organizationUuid, userUuid);
dbClient.propertiesDao().deleteByOrganizationAndMatchingLogin(dbSession, organizationUuid, user.getLogin(), singletonList(DEFAULT_ISSUE_ASSIGNEE));
diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/organization/OrganizationUpdaterImpl.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/organization/OrganizationUpdaterImpl.java
index d3e41a8bf14..3b1688861e0 100644
--- a/server/sonar-webserver-auth/src/main/java/org/sonar/server/organization/OrganizationUpdaterImpl.java
+++ b/server/sonar-webserver-auth/src/main/java/org/sonar/server/organization/OrganizationUpdaterImpl.java
@@ -104,7 +104,7 @@ public class OrganizationUpdaterImpl implements OrganizationUpdater {
addCurrentUserToGroup(dbSession, ownerGroup, userCreator.getUuid());
addCurrentUserToGroup(dbSession, defaultGroup, userCreator.getUuid());
try (DbSession batchDbSession = dbClient.openSession(true)) {
- insertQualityProfiles(dbSession, batchDbSession, organization);
+ insertQualityProfiles(dbSession, batchDbSession);
batchDbSession.commit();
// Elasticsearch is updated when DB session is committed
@@ -186,14 +186,13 @@ public class OrganizationUpdaterImpl implements OrganizationUpdater {
dbClient.permissionTemplateDao().insertGroupPermission(dbSession, template.getUuid(), group == null ? null : group.getUuid(), permission);
}
- private void insertQualityProfiles(DbSession dbSession, DbSession batchDbSession, OrganizationDto organization) {
+ private void insertQualityProfiles(DbSession dbSession, DbSession batchDbSession) {
Map<QProfileName, BuiltInQProfile> builtInsPerName = builtInQProfileRepository.get().stream()
.collect(uniqueIndex(BuiltInQProfile::getQProfileName));
List<DefaultQProfileDto> defaults = new ArrayList<>();
dbClient.qualityProfileDao().selectBuiltInRuleProfiles(dbSession).forEach(rulesProfile -> {
OrgQProfileDto dto = new OrgQProfileDto()
- .setOrganizationUuid(organization.getUuid())
.setRulesProfileUuid(rulesProfile.getUuid())
.setUuid(uuidFactory.create());
@@ -205,7 +204,6 @@ public class OrganizationUpdaterImpl implements OrganizationUpdater {
// in order to benefit from batch SQL inserts
defaults.add(new DefaultQProfileDto()
.setQProfileUuid(dto.getUuid())
- .setOrganizationUuid(organization.getUuid())
.setLanguage(rulesProfile.getLanguage()));
}
diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/qualityprofile/BuiltInQProfileInsert.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/qualityprofile/BuiltInQProfileInsert.java
index f0e7d54cb21..654fdb29c3d 100644
--- a/server/sonar-webserver-auth/src/main/java/org/sonar/server/qualityprofile/BuiltInQProfileInsert.java
+++ b/server/sonar-webserver-auth/src/main/java/org/sonar/server/qualityprofile/BuiltInQProfileInsert.java
@@ -23,7 +23,7 @@ import org.sonar.db.DbSession;
public interface BuiltInQProfileInsert {
/**
- * Persist a new built-in profile and associate it to all existing organizations.
+ * Persist a new built-in profile
* Db sessions are committed and Elasticsearch indices are updated..
*/
void create(DbSession session, DbSession batchSession, BuiltInQProfile builtInQProfile);
diff --git a/server/sonar-webserver-auth/src/main/java/org/sonar/server/qualityprofile/BuiltInQProfileInsertImpl.java b/server/sonar-webserver-auth/src/main/java/org/sonar/server/qualityprofile/BuiltInQProfileInsertImpl.java
index ceebfeff22e..8c3b290b79e 100644
--- a/server/sonar-webserver-auth/src/main/java/org/sonar/server/qualityprofile/BuiltInQProfileInsertImpl.java
+++ b/server/sonar-webserver-auth/src/main/java/org/sonar/server/qualityprofile/BuiltInQProfileInsertImpl.java
@@ -22,7 +22,6 @@ package org.sonar.server.qualityprofile;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
@@ -88,7 +87,7 @@ public class BuiltInQProfileInsertImpl implements BuiltInQProfileInsert {
changes.forEach(change -> dbClient.qProfileChangeDao().insert(batchDbSession, change.toDto(null)));
- associateToOrganizations(dbSession, batchDbSession, builtInQProfile, ruleProfile);
+ createDefaultAndOrgQProfiles(dbSession, batchDbSession, builtInQProfile, ruleProfile);
// TODO batch statements should be executed through dbSession
batchDbSession.commit();
@@ -96,30 +95,21 @@ public class BuiltInQProfileInsertImpl implements BuiltInQProfileInsert {
activeRuleIndexer.commitAndIndex(dbSession, changes);
}
- private void associateToOrganizations(DbSession dbSession, DbSession batchDbSession, BuiltInQProfile builtIn, RulesProfileDto rulesProfileDto) {
- List<String> orgUuids = dbClient.organizationDao().selectAllUuids(dbSession);
- Set<String> orgUuidsWithoutDefault = dbClient.defaultQProfileDao().selectUuidsOfOrganizationsWithoutDefaultProfile(dbSession, builtIn.getLanguage());
-
- List<DefaultQProfileDto> defaults = new ArrayList<>();
- orgUuids.forEach(orgUuid -> {
- OrgQProfileDto dto = new OrgQProfileDto()
- .setOrganizationUuid(orgUuid)
- .setRulesProfileUuid(rulesProfileDto.getUuid())
- .setUuid(uuidFactory.create());
-
- if (builtIn.isDefault() && orgUuidsWithoutDefault.contains(orgUuid)) {
- // rows of table default_qprofiles must be inserted after
- // in order to benefit from batch SQL inserts
- defaults.add(new DefaultQProfileDto()
- .setQProfileUuid(dto.getUuid())
- .setOrganizationUuid(orgUuid)
- .setLanguage(builtIn.getLanguage()));
- }
-
- dbClient.qualityProfileDao().insert(batchDbSession, dto);
- });
-
- defaults.forEach(defaultQProfileDto -> dbClient.defaultQProfileDao().insertOrUpdate(dbSession, defaultQProfileDto));
+ private void createDefaultAndOrgQProfiles(DbSession dbSession, DbSession batchDbSession, BuiltInQProfile builtIn, RulesProfileDto rulesProfileDto) {
+ Optional<String> qProfileUuid = dbClient.defaultQProfileDao().selectDefaultQProfileUuid(dbSession, builtIn.getLanguage());
+
+ OrgQProfileDto dto = new OrgQProfileDto()
+ .setRulesProfileUuid(rulesProfileDto.getUuid())
+ .setUuid(uuidFactory.create());
+
+ if (builtIn.isDefault() && !qProfileUuid.isPresent()) {
+ DefaultQProfileDto defaultQProfileDto = new DefaultQProfileDto()
+ .setQProfileUuid(dto.getUuid())
+ .setLanguage(builtIn.getLanguage());
+ dbClient.defaultQProfileDao().insertOrUpdate(dbSession, defaultQProfileDto);
+ }
+
+ dbClient.qualityProfileDao().insert(batchDbSession, dto);
}
private void initRuleRepository(DbSession dbSession) {
diff --git a/server/sonar-webserver-auth/src/test/java/org/sonar/server/organization/MemberUpdaterTest.java b/server/sonar-webserver-auth/src/test/java/org/sonar/server/organization/MemberUpdaterTest.java
index 44c288ff061..9e3a8eb2fce 100644
--- a/server/sonar-webserver-auth/src/test/java/org/sonar/server/organization/MemberUpdaterTest.java
+++ b/server/sonar-webserver-auth/src/test/java/org/sonar/server/organization/MemberUpdaterTest.java
@@ -38,7 +38,6 @@ import org.sonar.db.permission.template.PermissionTemplateDto;
import org.sonar.db.permission.template.PermissionTemplateUserDto;
import org.sonar.db.property.PropertyDto;
import org.sonar.db.property.PropertyQuery;
-import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.es.EsTester;
@@ -261,29 +260,6 @@ public class MemberUpdaterTest {
}
@Test
- public void remove_member_removes_qprofiles_user_permission() {
- OrganizationDto organization = db.organizations().insert();
- GroupDto defaultGroup = db.users().insertDefaultGroup(organization, "Members");
- UserDto user = db.users().insertUser();
- UserDto adminUser = db.users().insertAdminByUserPermission(organization);
- db.organizations().addMember(organization, user, adminUser);
- db.users().insertMember(defaultGroup, user);
- userIndexer.indexOnStartup(new HashSet<>());
-
- OrganizationDto anotherOrganization = db.organizations().insert();
- db.organizations().addMember(anotherOrganization, user);
- QProfileDto profile = db.qualityProfiles().insert(organization);
- QProfileDto anotherProfile = db.qualityProfiles().insert(anotherOrganization);
- db.qualityProfiles().addUserPermission(profile, user);
- db.qualityProfiles().addUserPermission(anotherProfile, user);
-
- underTest.removeMember(db.getSession(), organization, user);
-
- assertThat(db.getDbClient().qProfileEditUsersDao().exists(db.getSession(), profile, user)).isFalse();
- assertThat(db.getDbClient().qProfileEditUsersDao().exists(db.getSession(), anotherProfile, user)).isTrue();
- }
-
- @Test
public void remove_member_removes_user_from_organization_groups() {
OrganizationDto organization = db.organizations().insert();
GroupDto defaultGroup = db.users().insertDefaultGroup(organization, "Members");
diff --git a/server/sonar-webserver-auth/src/test/java/org/sonar/server/organization/OrganizationUpdaterImplTest.java b/server/sonar-webserver-auth/src/test/java/org/sonar/server/organization/OrganizationUpdaterImplTest.java
index ba5dee147ca..4042fb3724f 100644
--- a/server/sonar-webserver-auth/src/test/java/org/sonar/server/organization/OrganizationUpdaterImplTest.java
+++ b/server/sonar-webserver-auth/src/test/java/org/sonar/server/organization/OrganizationUpdaterImplTest.java
@@ -226,10 +226,10 @@ public class OrganizationUpdaterImplTest {
underTest.create(dbSession, user, FULL_POPULATED_NEW_ORGANIZATION, EMPTY_ORGANIZATION_CONSUMER);
OrganizationDto organization = dbClient.organizationDao().selectByKey(dbSession, FULL_POPULATED_NEW_ORGANIZATION.getKey()).get();
- List<QProfileDto> profiles = dbClient.qualityProfileDao().selectOrderedByOrganizationUuid(dbSession, organization);
+ List<QProfileDto> profiles = dbClient.qualityProfileDao().selectAll(dbSession);
assertThat(profiles).extracting(p -> new QProfileName(p.getLanguage(), p.getName())).containsExactlyInAnyOrder(
builtIn1.getQProfileName(), builtIn2.getQProfileName());
- assertThat(dbClient.qualityProfileDao().selectDefaultProfile(dbSession, organization, "foo").getName())
+ assertThat(dbClient.qualityProfileDao().selectDefaultProfile(dbSession, "foo").getName())
.isEqualTo("qp1");
}
diff --git a/server/sonar-webserver-auth/src/test/java/org/sonar/server/qualityprofile/BuiltInQProfileInsertImplTest.java b/server/sonar-webserver-auth/src/test/java/org/sonar/server/qualityprofile/BuiltInQProfileInsertImplTest.java
index 1d49048f134..dd6abc61954 100644
--- a/server/sonar-webserver-auth/src/test/java/org/sonar/server/qualityprofile/BuiltInQProfileInsertImplTest.java
+++ b/server/sonar-webserver-auth/src/test/java/org/sonar/server/qualityprofile/BuiltInQProfileInsertImplTest.java
@@ -33,7 +33,6 @@ import org.sonar.core.util.SequenceUuidFactory;
import org.sonar.core.util.UuidFactory;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleDto;
import org.sonar.db.qualityprofile.ActiveRuleKey;
import org.sonar.db.qualityprofile.ActiveRuleParamDto;
@@ -41,7 +40,6 @@ import org.sonar.db.qualityprofile.QProfileChangeDto;
import org.sonar.db.qualityprofile.QProfileChangeQuery;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.rule.RuleDefinitionDto;
-import org.sonar.server.language.LanguageTesting;
import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
import org.sonar.server.util.TypeValidations;
@@ -54,7 +52,7 @@ public class BuiltInQProfileInsertImplTest {
@Rule
public BuiltInQProfileRepositoryRule builtInQProfileRepository = new BuiltInQProfileRepositoryRule();
@Rule
- public DbTester db = DbTester.create().setDisableDefaultOrganization(true);
+ public DbTester db = DbTester.create();
@Rule
public ExpectedException expectedException = ExpectedException.none();
@@ -72,31 +70,7 @@ public class BuiltInQProfileInsertImplTest {
}
@Test
- public void insert_single_row_in_RULES_PROFILES_and_reference_it_in_ORG_QPROFILES() {
- OrganizationDto org1 = db.organizations().insert();
- OrganizationDto org2 = db.organizations().insert();
- BuiltInQProfile builtIn = builtInQProfileRepository.create(LanguageTesting.newLanguage("xoo"), "the name", false);
-
- call(builtIn);
-
- verifyTableSize("org_qprofiles", 2);
- verifyTableSize("rules_profiles", 1);
- verifyTableSize("active_rules", 0);
- verifyTableSize("active_rule_parameters", 0);
- verifyTableSize("qprofile_changes", 0);
- verifyTableSize("project_qprofiles", 0);
-
- QProfileDto profileOnOrg1 = verifyProfileInDb(org1, builtIn);
- QProfileDto profileOnOrg2 = verifyProfileInDb(org2, builtIn);
-
- // same row in table rules_profiles is used
- assertThat(profileOnOrg1.getKee()).isNotEqualTo(profileOnOrg2.getKee());
- assertThat(profileOnOrg1.getRulesProfileUuid()).isEqualTo(profileOnOrg2.getRulesProfileUuid());
- }
-
- @Test
public void insert_active_rules_and_changelog() {
- OrganizationDto org = db.organizations().insert();
RuleDefinitionDto rule1 = db.rules().insert(r -> r.setLanguage("xoo"));
RuleDefinitionDto rule2 = db.rules().insert(r -> r.setLanguage("xoo"));
@@ -115,14 +89,13 @@ public class BuiltInQProfileInsertImplTest {
verifyTableSize("active_rule_parameters", 0);
verifyTableSize("qprofile_changes", 2);
- QProfileDto profile = verifyProfileInDb(org, builtIn);
+ QProfileDto profile = verifyProfileInDb(builtIn);
verifyActiveRuleInDb(profile, rule1, Severity.CRITICAL);
verifyActiveRuleInDb(profile, rule2, Severity.MAJOR);
}
@Test
- public void flag_profile_as_default_on_organization_if_declared_as_default_by_api() {
- OrganizationDto org = db.organizations().insert();
+ public void flag_profile_as_default_if_declared_as_default_by_api() {
BuiltInQualityProfilesDefinition.Context context = new BuiltInQualityProfilesDefinition.Context();
NewBuiltInQualityProfile newQp = context.createBuiltInQualityProfile("the name", "xoo").setDefault(true);
newQp.done();
@@ -131,31 +104,29 @@ public class BuiltInQProfileInsertImplTest {
call(builtIn);
- QProfileDto profile = verifyProfileInDb(org, builtIn);
- QProfileDto defaultProfile = db.getDbClient().qualityProfileDao().selectDefaultProfile(dbSession, org, "xoo");
+ QProfileDto profile = verifyProfileInDb(builtIn);
+ QProfileDto defaultProfile = db.getDbClient().qualityProfileDao().selectDefaultProfile(dbSession, "xoo");
assertThat(defaultProfile.getKee()).isEqualTo(profile.getKee());
}
@Test
- public void existing_default_profile_in_organization_must_not_be_changed() {
+ public void existing_default_profile_must_not_be_changed() {
BuiltInQualityProfilesDefinition.Context context = new BuiltInQualityProfilesDefinition.Context();
NewBuiltInQualityProfile newQp = context.createBuiltInQualityProfile("the name", "xoo").setDefault(true);
newQp.done();
BuiltInQProfile builtIn = builtInQProfileRepository.create(context.profile("xoo", "the name"));
- OrganizationDto org = db.organizations().insert();
- QProfileDto currentDefault = db.qualityProfiles().insert(org, p -> p.setLanguage("xoo"));
+ QProfileDto currentDefault = db.qualityProfiles().insert(p -> p.setLanguage("xoo"));
db.qualityProfiles().setAsDefault(currentDefault);
call(builtIn);
- QProfileDto defaultProfile = db.getDbClient().qualityProfileDao().selectDefaultProfile(dbSession, org, "xoo");
+ QProfileDto defaultProfile = db.getDbClient().qualityProfileDao().selectDefaultProfile(dbSession, "xoo");
assertThat(defaultProfile.getKee()).isEqualTo(currentDefault.getKee());
}
@Test
- public void dont_flag_profile_as_default_on_organization_if_not_declared_as_default_by_api() {
- OrganizationDto org = db.organizations().insert();
+ public void dont_flag_profile_as_default_if_not_declared_as_default_by_api() {
BuiltInQualityProfilesDefinition.Context context = new BuiltInQualityProfilesDefinition.Context();
NewBuiltInQualityProfile newQp = context.createBuiltInQualityProfile("the name", "xoo").setDefault(false);
newQp.done();
@@ -163,7 +134,7 @@ public class BuiltInQProfileInsertImplTest {
call(builtIn);
- QProfileDto defaultProfile = db.getDbClient().qualityProfileDao().selectDefaultProfile(dbSession, org, "xoo");
+ QProfileDto defaultProfile = db.getDbClient().qualityProfileDao().selectDefaultProfile(dbSession, "xoo");
assertThat(defaultProfile).isNull();
}
@@ -197,11 +168,10 @@ public class BuiltInQProfileInsertImplTest {
assertThat(change.getDataAsMap().get("severity")).isEqualTo(expectedSeverity);
}
- private QProfileDto verifyProfileInDb(OrganizationDto organization, BuiltInQProfile builtIn) {
- QProfileDto profileOnOrg1 = db.getDbClient().qualityProfileDao().selectByNameAndLanguage(dbSession, organization, builtIn.getName(), builtIn.getLanguage());
+ private QProfileDto verifyProfileInDb(BuiltInQProfile builtIn) {
+ QProfileDto profileOnOrg1 = db.getDbClient().qualityProfileDao().selectByNameAndLanguage(dbSession, builtIn.getName(), builtIn.getLanguage());
assertThat(profileOnOrg1.getLanguage()).isEqualTo(builtIn.getLanguage());
assertThat(profileOnOrg1.getName()).isEqualTo(builtIn.getName());
- assertThat(profileOnOrg1.getOrganizationUuid()).isEqualTo(organization.getUuid());
assertThat(profileOnOrg1.getParentKee()).isNull();
assertThat(profileOnOrg1.getLastUsed()).isNull();
assertThat(profileOnOrg1.getUserUpdatedAt()).isNull();
diff --git a/server/sonar-webserver-auth/src/test/java/org/sonar/server/qualityprofile/BuiltInQProfileUpdateImplTest.java b/server/sonar-webserver-auth/src/test/java/org/sonar/server/qualityprofile/BuiltInQProfileUpdateImplTest.java
index 09741edd18c..4d64f56da08 100644
--- a/server/sonar-webserver-auth/src/test/java/org/sonar/server/qualityprofile/BuiltInQProfileUpdateImplTest.java
+++ b/server/sonar-webserver-auth/src/test/java/org/sonar/server/qualityprofile/BuiltInQProfileUpdateImplTest.java
@@ -255,8 +255,7 @@ public class BuiltInQProfileUpdateImplTest {
public void propagate_activation_to_descendant_profiles() {
RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("xoo"));
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(),
- p -> p.setLanguage(rule.getLanguage()).setIsBuiltIn(true));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(rule.getLanguage()).setIsBuiltIn(true));
QProfileDto childProfile = createChildProfile(profile);
QProfileDto grandchildProfile = createChildProfile(childProfile);
@@ -277,8 +276,7 @@ public class BuiltInQProfileUpdateImplTest {
public void do_not_load_descendants_if_no_changes() {
RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("xoo"));
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(),
- p -> p.setLanguage(rule.getLanguage()).setIsBuiltIn(true));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(rule.getLanguage()).setIsBuiltIn(true));
QProfileDto childProfile = createChildProfile(profile);
BuiltInQualityProfilesDefinition.Context context = new BuiltInQualityProfilesDefinition.Context();
@@ -308,8 +306,7 @@ public class BuiltInQProfileUpdateImplTest {
public void propagate_deactivation_to_descendant_profiles() {
RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("xoo"));
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(),
- p -> p.setLanguage(rule.getLanguage()).setIsBuiltIn(true));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(rule.getLanguage()).setIsBuiltIn(true));
QProfileDto childProfile = createChildProfile(profile);
QProfileDto grandChildProfile = createChildProfile(childProfile);
@@ -337,7 +334,7 @@ public class BuiltInQProfileUpdateImplTest {
}
private QProfileDto createChildProfile(QProfileDto parent) {
- return db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p
+ return db.qualityProfiles().insert(p -> p
.setLanguage(parent.getLanguage())
.setParentKee(parent.getKee())
.setName("Child of " + parent.getName()))
diff --git a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java
index 01229777861..ee46d43b149 100644
--- a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java
+++ b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java
@@ -62,7 +62,6 @@ import org.sonar.db.rule.RuleDto.Scope;
import org.sonar.db.rule.RuleParamDto;
import org.sonar.db.rule.RuleRepositoryDto;
import org.sonar.server.es.metadata.MetadataIndex;
-import org.sonar.server.organization.OrganizationFlags;
import org.sonar.server.qualityprofile.ActiveRuleChange;
import org.sonar.server.qualityprofile.QProfileRules;
import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
@@ -92,13 +91,12 @@ public class RegisterRules implements Startable {
private final ActiveRuleIndexer activeRuleIndexer;
private final Languages languages;
private final System2 system2;
- private final OrganizationFlags organizationFlags;
private final WebServerRuleFinder webServerRuleFinder;
private final UuidFactory uuidFactory;
private final MetadataIndex metadataIndex;
public RegisterRules(RuleDefinitionsLoader defLoader, QProfileRules qProfileRules, DbClient dbClient, RuleIndexer ruleIndexer,
- ActiveRuleIndexer activeRuleIndexer, Languages languages, System2 system2, OrganizationFlags organizationFlags,
+ ActiveRuleIndexer activeRuleIndexer, Languages languages, System2 system2,
WebServerRuleFinder webServerRuleFinder, UuidFactory uuidFactory, MetadataIndex metadataIndex) {
this.defLoader = defLoader;
this.qProfileRules = qProfileRules;
@@ -107,7 +105,6 @@ public class RegisterRules implements Startable {
this.activeRuleIndexer = activeRuleIndexer;
this.languages = languages;
this.system2 = system2;
- this.organizationFlags = organizationFlags;
this.webServerRuleFinder = webServerRuleFinder;
this.uuidFactory = uuidFactory;
this.metadataIndex = metadataIndex;
@@ -123,13 +120,9 @@ public class RegisterRules implements Startable {
verifyRuleKeyConsistency(repositories, registerRulesContext);
- boolean orgsEnabled = organizationFlags.isEnabled(dbSession);
for (RulesDefinition.ExtendedRepository repoDef : repositories) {
if (languages.get(repoDef.language()) != null) {
for (RulesDefinition.Rule ruleDef : repoDef.rules()) {
- if (noTemplateRuleWithOrganizationsEnabled(registerRulesContext, orgsEnabled, ruleDef)) {
- continue;
- }
registerRule(registerRulesContext, ruleDef, dbSession);
}
dbSession.commit();
@@ -181,22 +174,6 @@ public class RegisterRules implements Startable {
.collect(Collectors.groupingBy(SingleDeprecatedRuleKey::getRuleUuid, Collectors.toSet()));
}
- private static boolean noTemplateRuleWithOrganizationsEnabled(RegisterRulesContext registerRulesContext, boolean orgsEnabled, RulesDefinition.Rule ruleDef) {
- if (!ruleDef.template() || !orgsEnabled) {
- return false;
- }
-
- Optional<RuleDefinitionDto> dbRule = registerRulesContext.getDbRuleFor(ruleDef);
- if (dbRule.isPresent() && dbRule.get().getStatus() == RuleStatus.REMOVED) {
- RuleDefinitionDto dto = dbRule.get();
- LOG.debug("Template rule {} kept removed, because organizations are enabled.", dto.getKey());
- registerRulesContext.removed(dto);
- } else {
- LOG.info("Template rule {} will not be imported, because organizations are enabled.", RuleKey.of(ruleDef.repository().key(), ruleDef.key()));
- }
- return true;
- }
-
private static class RegisterRulesContext {
// initial immutable data
private final Map<RuleKey, RuleDefinitionDto> dbRules;
@@ -553,7 +530,7 @@ public class RegisterRules implements Startable {
RulesDefinition.Param paramDef = ruleDef.param(paramDto.getName());
if (paramDef == null) {
profiler.start();
- dbClient.activeRuleDao().deleteParamsByRuleParamOfAllOrganizations(session, paramDto);
+ dbClient.activeRuleDao().deleteParamsByRuleParam(session, paramDto);
profiler.stopDebug(format("Propagate deleted param with name %s to active rules of rule %s", paramDto.getName(), rule.getKey()));
dbClient.ruleDao().deleteRuleParam(session, paramDto.getUuid());
} else {
@@ -581,7 +558,7 @@ public class RegisterRules implements Startable {
}
// Propagate the default value to existing active rule parameters
profiler.start();
- for (ActiveRuleDto activeRule : dbClient.activeRuleDao().selectByRuleUuidOfAllOrganizations(session, rule.getUuid())) {
+ for (ActiveRuleDto activeRule : dbClient.activeRuleDao().selectByRuleUuid(session, rule.getUuid())) {
ActiveRuleParamDto activeParam = ActiveRuleParamDto.createFor(paramDto).setValue(param.defaultValue());
dbClient.activeRuleDao().insertParam(session, activeRule, activeParam);
}
diff --git a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/WebServerRuleFinderImpl.java b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/WebServerRuleFinderImpl.java
index 448222ad30d..4a8a64bd44f 100644
--- a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/WebServerRuleFinderImpl.java
+++ b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/WebServerRuleFinderImpl.java
@@ -36,9 +36,9 @@ public class WebServerRuleFinderImpl implements WebServerRuleFinder {
@VisibleForTesting
ServerRuleFinder delegate;
- public WebServerRuleFinderImpl(DbClient dbClient, DefaultOrganizationProvider defaultOrganizationProvider) {
+ public WebServerRuleFinderImpl(DbClient dbClient) {
this.dbClient = dbClient;
- this.defaultFinder = new DefaultRuleFinder(dbClient, defaultOrganizationProvider);
+ this.defaultFinder = new DefaultRuleFinder(dbClient);
this.delegate = this.defaultFinder;
}
diff --git a/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/RegisterRulesTest.java b/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/RegisterRulesTest.java
index 8ebc31b8e36..4425cb5ae79 100644
--- a/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/RegisterRulesTest.java
+++ b/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/RegisterRulesTest.java
@@ -43,7 +43,6 @@ import org.sonar.api.server.rule.RulesDefinition;
import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.System2;
import org.sonar.api.utils.log.LogTester;
-import org.sonar.api.utils.log.LoggerLevel;
import org.sonar.core.util.UuidFactory;
import org.sonar.core.util.UuidFactoryFast;
import org.sonar.db.DbClient;
@@ -60,8 +59,6 @@ import org.sonar.server.es.EsTester;
import org.sonar.server.es.SearchIdResult;
import org.sonar.server.es.SearchOptions;
import org.sonar.server.es.metadata.MetadataIndex;
-import org.sonar.server.organization.OrganizationFlags;
-import org.sonar.server.organization.TestOrganizationFlags;
import org.sonar.server.plugins.ServerPluginRepository;
import org.sonar.server.qualityprofile.QProfileRules;
import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
@@ -124,8 +121,6 @@ public class RegisterRulesTest {
private ActiveRuleIndexer activeRuleIndexer;
private RuleIndex ruleIndex;
private MetadataIndex metadataIndex = mock(MetadataIndex.class);
- private OrganizationDto defaultOrganization;
- private OrganizationFlags organizationFlags = TestOrganizationFlags.standalone();
private UuidFactory uuidFactory = UuidFactoryFast.getInstance();
@Before
@@ -134,7 +129,6 @@ public class RegisterRulesTest {
ruleIndexer = new RuleIndexer(es.client(), dbClient);
ruleIndex = new RuleIndex(es.client(), system);
activeRuleIndexer = new ActiveRuleIndexer(dbClient, es.client());
- defaultOrganization = db.getDefaultOrganization();
}
@Test
@@ -143,7 +137,7 @@ public class RegisterRulesTest {
// verify db
assertThat(dbClient.ruleDao().selectAllDefinitions(db.getSession())).hasSize(3);
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), db.getDefaultOrganization(), RULE_KEY1);
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY1);
assertThat(rule1.getName()).isEqualTo("One");
assertThat(rule1.getDescription()).isEqualTo("Description of One");
assertThat(rule1.getSeverityString()).isEqualTo(BLOCKER);
@@ -162,7 +156,7 @@ public class RegisterRulesTest {
assertThat(rule1.isExternal()).isFalse();
assertThat(rule1.isAdHoc()).isFalse();
- RuleDto hotspotRule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), db.getDefaultOrganization(), HOTSPOT_RULE_KEY);
+ RuleDto hotspotRule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), HOTSPOT_RULE_KEY);
assertThat(hotspotRule.getName()).isEqualTo("Hotspot");
assertThat(hotspotRule.getDescription()).isEqualTo("Minimal hotspot");
assertThat(hotspotRule.getCreatedAt()).isEqualTo(DATE1.getTime());
@@ -177,7 +171,7 @@ public class RegisterRulesTest {
assertThat(param.getDefaultValue()).isEqualTo("default1");
// verify index
- RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), db.getDefaultOrganization(), RULE_KEY2);
+ RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY2);
assertThat(ruleIndex.search(new RuleQuery(), new SearchOptions()).getUuids()).containsOnly(rule1.getUuid(), rule2.getUuid(), hotspotRule.getUuid());
verifyIndicesMarkedAsInitialized();
@@ -191,7 +185,7 @@ public class RegisterRulesTest {
// verify db
assertThat(dbClient.ruleDao().selectAllDefinitions(db.getSession())).hasSize(2);
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), db.getDefaultOrganization(), EXTERNAL_RULE_KEY1);
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), EXTERNAL_RULE_KEY1);
assertThat(rule1.getName()).isEqualTo("One");
assertThat(rule1.getDescription()).isEqualTo("Description of One");
assertThat(rule1.getSeverityString()).isEqualTo(BLOCKER);
@@ -210,7 +204,7 @@ public class RegisterRulesTest {
assertThat(rule1.isExternal()).isTrue();
assertThat(rule1.isAdHoc()).isFalse();
- RuleDto hotspotRule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), db.getDefaultOrganization(), EXTERNAL_HOTSPOT_RULE_KEY);
+ RuleDto hotspotRule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), EXTERNAL_HOTSPOT_RULE_KEY);
assertThat(hotspotRule.getName()).isEqualTo("Hotspot");
assertThat(hotspotRule.getDescription()).isEqualTo("Minimal hotspot");
assertThat(hotspotRule.getCreatedAt()).isEqualTo(DATE1.getTime());
@@ -320,9 +314,9 @@ public class RegisterRulesTest {
public void update_and_remove_rules_on_changes() {
execute(new FakeRepositoryV1());
assertThat(dbClient.ruleDao().selectAllDefinitions(db.getSession())).hasSize(3);
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY1);
- RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY2);
- RuleDto hotspotRule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, HOTSPOT_RULE_KEY);
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY1);
+ RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY2);
+ RuleDto hotspotRule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), HOTSPOT_RULE_KEY);
assertThat(es.getIds(RuleIndexDefinition.TYPE_RULE)).containsOnly(valueOf(rule1.getUuid()), valueOf(rule2.getUuid()), valueOf(hotspotRule.getUuid()));
verifyIndicesMarkedAsInitialized();
@@ -338,7 +332,7 @@ public class RegisterRulesTest {
verifyIndicesNotMarkedAsInitialized();
// rule1 has been updated
- rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY1);
+ rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY1);
assertThat(rule1.getName()).isEqualTo("One v2");
assertThat(rule1.getDescription()).isEqualTo("Description of One v2");
assertThat(rule1.getSeverityString()).isEqualTo(INFO);
@@ -359,12 +353,12 @@ public class RegisterRulesTest {
assertThat(param.getDefaultValue()).isEqualTo("default1 v2");
// rule2 has been removed -> status set to REMOVED but db row is not deleted
- rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY2);
+ rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY2);
assertThat(rule2.getStatus()).isEqualTo(REMOVED);
assertThat(rule2.getUpdatedAt()).isEqualTo(DATE2.getTime());
// rule3 has been created
- RuleDto rule3 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY3);
+ RuleDto rule3 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY3);
assertThat(rule3).isNotNull();
assertThat(rule3.getStatus()).isEqualTo(READY);
@@ -387,7 +381,7 @@ public class RegisterRulesTest {
});
OrganizationDto defaultOrganization = db.getDefaultOrganization();
- RuleDto rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY1);
+ RuleDto rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY1);
assertThat(rule.getSystemTags()).containsOnly("tag1");
execute(context -> {
@@ -399,7 +393,7 @@ public class RegisterRulesTest {
repo.done();
});
- rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY1);
+ rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY1);
assertThat(rule.getSystemTags()).containsOnly("tag1", "tag2");
}
@@ -416,7 +410,7 @@ public class RegisterRulesTest {
});
OrganizationDto defaultOrganization = db.getDefaultOrganization();
- RuleDto rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY1);
+ RuleDto rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY1);
assertThat(rule.getSecurityStandards()).containsOnly("cwe:123", "owaspTop10:a1");
execute(context -> {
@@ -429,7 +423,7 @@ public class RegisterRulesTest {
repo.done();
});
- rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY1);
+ rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY1);
assertThat(rule.getSecurityStandards()).containsOnly("cwe:1", "cwe:123", "cwe:863", "owaspTop10:a1", "owaspTop10:a3");
}
@@ -454,7 +448,7 @@ public class RegisterRulesTest {
});
// rule1 has been updated
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of("fake", "rule"));
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of("fake", "rule"));
assertThat(rule1.getName()).isEqualTo("Name2");
assertThat(rule1.getDescription()).isEqualTo("Description");
@@ -474,7 +468,7 @@ public class RegisterRulesTest {
repo.done();
});
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of("squid", "rule"));
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of("squid", "rule"));
// insert custom rule
db.rules().insert(new RuleDefinitionDto()
@@ -497,8 +491,8 @@ public class RegisterRulesTest {
});
// template rule and custom rule have been updated
- rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of("java", "rule"));
- RuleDto custom = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of("java", "custom"));
+ rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of("java", "rule"));
+ RuleDto custom = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of("java", "custom"));
}
@Test
@@ -516,7 +510,7 @@ public class RegisterRulesTest {
repo.done();
});
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of(repository, ruleKey1));
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of(repository, ruleKey1));
SearchIdResult<String> searchRule1 = ruleIndex.search(new RuleQuery().setQueryText("Name1"), new SearchOptions());
assertThat(searchRule1.getUuids()).containsOnly(rule1.getUuid());
assertThat(searchRule1.getTotal()).isEqualTo(1);
@@ -532,7 +526,7 @@ public class RegisterRulesTest {
});
// rule2 is actually rule1
- RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of(repository, ruleKey2));
+ RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of(repository, ruleKey2));
assertThat(rule2.getUuid()).isEqualTo(rule1.getUuid());
assertThat(rule2.getName()).isEqualTo("Name2");
assertThat(rule2.getDescription()).isEqualTo(rule1.getDescription());
@@ -558,7 +552,7 @@ public class RegisterRulesTest {
repo.done();
});
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of(repository1, ruleKey));
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of(repository1, ruleKey));
SearchIdResult<String> searchRule1 = ruleIndex.search(new RuleQuery().setQueryText("Name1"), new SearchOptions());
assertThat(searchRule1.getUuids()).containsOnly(rule1.getUuid());
assertThat(searchRule1.getTotal()).isEqualTo(1);
@@ -574,7 +568,7 @@ public class RegisterRulesTest {
});
// rule2 is actually rule1
- RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of(repository2, ruleKey));
+ RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of(repository2, ruleKey));
assertThat(rule2.getUuid()).isEqualTo(rule1.getUuid());
assertThat(rule2.getName()).isEqualTo("Name2");
assertThat(rule2.getDescription()).isEqualTo(rule1.getDescription());
@@ -599,7 +593,7 @@ public class RegisterRulesTest {
repo.done();
});
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of(repo1, ruleKey1));
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of(repo1, ruleKey1));
assertThat(ruleIndex.search(new RuleQuery().setQueryText(name), new SearchOptions()).getUuids())
.containsOnly(rule1.getUuid());
@@ -614,7 +608,7 @@ public class RegisterRulesTest {
});
// rule2 is actually rule1
- RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of(repo2, ruleKey2));
+ RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of(repo2, ruleKey2));
assertThat(rule2.getUuid()).isEqualTo(rule1.getUuid());
assertThat(rule2.getName()).isEqualTo(rule1.getName());
assertThat(rule2.getDescription()).isEqualTo(rule1.getDescription());
@@ -648,7 +642,7 @@ public class RegisterRulesTest {
repo.done();
});
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of(repository1, ruleKey1));
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of(repository1, ruleKey1));
assertThat(ruleIndex.search(new RuleQuery().setQueryText("Name1"), new SearchOptions()).getUuids())
.containsOnly(rule1.getUuid());
@@ -665,7 +659,7 @@ public class RegisterRulesTest {
});
// rule2 is actually rule1
- RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of(repository2, ruleKey2));
+ RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of(repository2, ruleKey2));
assertThat(rule2.getUuid()).isEqualTo(rule1.getUuid());
assertThat(ruleIndex.search(new RuleQuery().setQueryText("Name2"), new SearchOptions()).getUuids())
@@ -693,7 +687,7 @@ public class RegisterRulesTest {
});
// rule1 has been updated
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RuleKey.of("fake", "rule"));
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RuleKey.of("fake", "rule"));
assertThat(rule1.getName()).isEqualTo("Name");
assertThat(rule1.getDescription()).isEqualTo("Desc2");
@@ -713,7 +707,7 @@ public class RegisterRulesTest {
repo.done();
});
- RuleDto reloaded = dbClient.ruleDao().selectByKey(db.getSession(), defaultOrganization.getUuid(), rule.getKey()).get();
+ RuleDto reloaded = dbClient.ruleDao().selectByKey(db.getSession(), rule.getKey()).get();
assertThat(reloaded.isAdHoc()).isFalse();
}
@@ -726,7 +720,7 @@ public class RegisterRulesTest {
execute();
- RuleDto reloaded = dbClient.ruleDao().selectByKey(db.getSession(), defaultOrganization.getUuid(), rule.getKey()).get();
+ RuleDto reloaded = dbClient.ruleDao().selectByKey(db.getSession(), rule.getKey()).get();
assertThat(reloaded.getStatus()).isEqualTo(REMOVED);
}
@@ -739,7 +733,7 @@ public class RegisterRulesTest {
execute();
- RuleDto reloaded = dbClient.ruleDao().selectByKey(db.getSession(), defaultOrganization.getUuid(), rule.getKey()).get();
+ RuleDto reloaded = dbClient.ruleDao().selectByKey(db.getSession(), rule.getKey()).get();
assertThat(reloaded.getStatus()).isEqualTo(READY);
}
@@ -753,7 +747,7 @@ public class RegisterRulesTest {
when(system.now()).thenReturn(DATE2.getTime());
execute();
- RuleDto rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY1);
+ RuleDto rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY1);
assertThat(rule.getStatus()).isEqualTo(REMOVED);
assertThat(ruleIndex.search(new RuleQuery().setKey(RULE_KEY1.toString()), new SearchOptions()).getTotal()).isEqualTo(0);
@@ -761,7 +755,7 @@ public class RegisterRulesTest {
when(system.now()).thenReturn(DATE3.getTime());
execute(new FakeRepositoryV1());
- rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY1);
+ rule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY1);
assertThat(rule.getStatus()).isEqualTo(RuleStatus.BETA);
assertThat(ruleIndex.search(new RuleQuery().setKey(RULE_KEY1.toString()), new SearchOptions()).getTotal()).isEqualTo(1);
}
@@ -774,7 +768,7 @@ public class RegisterRulesTest {
when(system.now()).thenReturn(DATE2.getTime());
execute(new FakeRepositoryV1());
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY1);
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY1);
assertThat(rule1.getCreatedAt()).isEqualTo(DATE1.getTime());
assertThat(rule1.getUpdatedAt()).isEqualTo(DATE1.getTime());
}
@@ -784,9 +778,9 @@ public class RegisterRulesTest {
execute(new FakeRepositoryV1());
assertThat(dbClient.ruleDao().selectAllDefinitions(db.getSession())).hasSize(3);
- RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY1);
- RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY2);
- RuleDto hotspotRule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, HOTSPOT_RULE_KEY);
+ RuleDto rule1 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY1);
+ RuleDto rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY2);
+ RuleDto hotspotRule = dbClient.ruleDao().selectOrFailByKey(db.getSession(), HOTSPOT_RULE_KEY);
assertThat(es.getIds(RuleIndexDefinition.TYPE_RULE)).containsOnly(valueOf(rule1.getUuid()), valueOf(rule2.getUuid()), valueOf(hotspotRule.getUuid()));
assertThat(rule2.getStatus()).isEqualTo(READY);
@@ -799,8 +793,8 @@ public class RegisterRulesTest {
db.getSession().commit();
// rule2 is removed
- rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY2);
- RuleDto rule3 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY3);
+ rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY2);
+ RuleDto rule3 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY3);
assertThat(rule2.getStatus()).isEqualTo(REMOVED);
assertThat(ruleIndex.search(new RuleQuery(), new SearchOptions()).getUuids()).containsOnly(rule1.getUuid(), rule3.getUuid());
@@ -810,7 +804,7 @@ public class RegisterRulesTest {
db.getSession().commit();
// -> rule2 is still removed, but not update at DATE3
- rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), defaultOrganization, RULE_KEY2);
+ rule2 = dbClient.ruleDao().selectOrFailByKey(db.getSession(), RULE_KEY2);
assertThat(rule2.getStatus()).isEqualTo(REMOVED);
assertThat(rule2.getUpdatedAt()).isEqualTo(DATE2.getTime());
@@ -857,23 +851,6 @@ public class RegisterRulesTest {
}
@Test
- public void ignore_template_rules_if_organizations_are_enabled() {
- organizationFlags.enable(db.getSession());
- execute(new RepositoryWithOneTemplateRule());
-
- List<RuleDefinitionDto> rules = dbClient.ruleDao().selectAllDefinitions(db.getSession());
- assertThat(rules).hasSize(0);
- }
-
- @Test
- public void log_ignored_template_rules_if_organizations_are_enabled() {
- organizationFlags.enable(db.getSession());
- execute(new RepositoryWithOneTemplateRule());
-
- assertThat(logTester.logs(LoggerLevel.INFO)).contains("Template rule test:rule1 will not be imported, because organizations are enabled.");
- }
-
- @Test
public void rules_that_deprecate_previous_rule_must_be_recorded() {
execute(context -> {
NewRepository repo = context.createRepository("fake", "java");
@@ -998,14 +975,12 @@ public class RegisterRulesTest {
private void execute(RulesDefinition... defs) {
ServerPluginRepository pluginRepository = mock(ServerPluginRepository.class);
when(pluginRepository.getPluginKey(any(RulesDefinition.class))).thenReturn(FAKE_PLUGIN_KEY);
- RuleDefinitionsLoader loader = new RuleDefinitionsLoader(mock(CommonRuleDefinitionsImpl.class), pluginRepository,
- defs);
+ RuleDefinitionsLoader loader = new RuleDefinitionsLoader(mock(CommonRuleDefinitionsImpl.class), pluginRepository, defs);
Languages languages = mock(Languages.class);
when(languages.get(any())).thenReturn(mock(Language.class));
reset(webServerRuleFinder);
- RegisterRules task = new RegisterRules(loader, qProfileRules, dbClient, ruleIndexer, activeRuleIndexer,
- languages, system, organizationFlags, webServerRuleFinder, uuidFactory, metadataIndex);
+ RegisterRules task = new RegisterRules(loader, qProfileRules, dbClient, ruleIndexer, activeRuleIndexer, languages, system, webServerRuleFinder, uuidFactory, metadataIndex);
task.start();
// Execute a commit to refresh session state as the task is using its own session
db.getSession().commit();
@@ -1040,7 +1015,6 @@ public class RegisterRulesTest {
private void verifyIndicesMarkedAsInitialized() {
verify(metadataIndex).setInitialized(RuleIndexDefinition.TYPE_RULE, true);
- verify(metadataIndex).setInitialized(RuleIndexDefinition.TYPE_RULE_EXTENSION, true);
verify(metadataIndex).setInitialized(RuleIndexDefinition.TYPE_ACTIVE_RULE, true);
reset(metadataIndex);
}
@@ -1188,16 +1162,4 @@ public class RegisterRulesTest {
repo.done();
}
}
-
- static class RepositoryWithOneTemplateRule implements RulesDefinition {
- @Override
- public void define(Context context) {
- NewRepository repo = context.createRepository("test", "java");
- repo.createRule("rule1")
- .setName("Rule One")
- .setHtmlDescription("Description of Rule One")
- .setTemplate(true);
- repo.done();
- }
- }
}
diff --git a/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/WebServerRuleFinderImplTest.java b/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/WebServerRuleFinderImplTest.java
index 1d25804880b..59204f1333a 100644
--- a/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/WebServerRuleFinderImplTest.java
+++ b/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/WebServerRuleFinderImplTest.java
@@ -33,8 +33,7 @@ import static org.mockito.Mockito.when;
public class WebServerRuleFinderImplTest {
private DbClient dbClient = mock(DbClient.class);
- private TestDefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.fromUuid("1111");
- private WebServerRuleFinderImpl underTest = new WebServerRuleFinderImpl(dbClient, defaultOrganizationProvider);
+ private WebServerRuleFinderImpl underTest = new WebServerRuleFinderImpl(dbClient);
@Before
public void setUp() {
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/OrganizationDeleter.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/OrganizationDeleter.java
index 48e91c1acd5..f7e9d51a780 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/OrganizationDeleter.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/organization/ws/OrganizationDeleter.java
@@ -73,7 +73,6 @@ public class OrganizationDeleter {
deleteProjects(dbSession, organization);
deletePermissions(dbSession, organization);
deleteGroups(dbSession, organization);
- deleteQualityProfiles(dbSession, organization);
deleteQualityGates(dbSession, organization);
deleteOrganizationAlmBinding(dbSession, organization);
deleteOrganization(dbSession, organization);
@@ -102,11 +101,6 @@ public class OrganizationDeleter {
dbClient.groupDao().deleteByOrganization(dbSession, organization.getUuid());
}
- private void deleteQualityProfiles(DbSession dbSession, OrganizationDto organization) {
- List<QProfileDto> profiles = dbClient.qualityProfileDao().selectOrderedByOrganizationUuid(dbSession, organization);
- qProfileFactory.delete(dbSession, profiles);
- }
-
private void deleteQualityGates(DbSession dbSession, OrganizationDto organization) {
Collection<QualityGateDto> qualityGates = dbClient.qualityGateDao().selectAll(dbSession, organization);
dbClient.qualityGateDao().deleteByUuids(dbSession, qualityGates.stream()
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuper.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuper.java
index 177d244f5f3..c4df4689d2d 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuper.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuper.java
@@ -23,7 +23,6 @@ import java.io.Reader;
import java.io.Writer;
import javax.annotation.Nullable;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
/**
@@ -34,11 +33,11 @@ public interface QProfileBackuper {
void backup(DbSession dbSession, QProfileDto profile, Writer backupWriter);
/**
- * Restore backup on a profile in the specified organization. The parameter {@code overriddenProfileName}
+ * Restore backup on a profile. The parameter {@code overriddenProfileName}
* is the name of the profile to be used. If the parameter is null, then the name is loaded from the backup.
* The profile is created if it does not exist.
*/
- QProfileRestoreSummary restore(DbSession dbSession, Reader backup, OrganizationDto organization, @Nullable String overriddenProfileName);
+ QProfileRestoreSummary restore(DbSession dbSession, Reader backup, @Nullable String overriddenProfileName);
/**
* Restore backup on an existing profile.
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuperImpl.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuperImpl.java
index b9c41abecd6..4eace5d6d91 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuperImpl.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileBackuperImpl.java
@@ -103,13 +103,13 @@ public class QProfileBackuperImpl implements QProfileBackuper {
}
@Override
- public QProfileRestoreSummary restore(DbSession dbSession, Reader backup, OrganizationDto organization, @Nullable String overriddenProfileName) {
+ public QProfileRestoreSummary restore(DbSession dbSession, Reader backup, @Nullable String overriddenProfileName) {
return restore(dbSession, backup, nameInBackup -> {
QProfileName targetName = nameInBackup;
if (overriddenProfileName != null) {
targetName = new QProfileName(nameInBackup.getLanguage(), overriddenProfileName);
}
- return profileFactory.getOrCreateCustom(dbSession, organization, targetName);
+ return profileFactory.getOrCreateCustom(dbSession, targetName);
});
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileCopier.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileCopier.java
index 984280a68ef..b2e3f2a818d 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileCopier.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileCopier.java
@@ -22,7 +22,6 @@ package org.sonar.server.qualityprofile;
import org.sonar.api.server.ServerSide;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
@ServerSide
@@ -38,19 +37,17 @@ public class QProfileCopier {
}
public QProfileDto copyToName(DbSession dbSession, QProfileDto sourceProfile, String toName) {
- OrganizationDto organization = db.organizationDao().selectByUuid(dbSession, sourceProfile.getOrganizationUuid())
- .orElseThrow(() -> new IllegalStateException("Organization with UUID [" + sourceProfile.getOrganizationUuid() + "] does not exist"));
- QProfileDto to = prepareTarget(dbSession, organization, sourceProfile, toName);
+ QProfileDto to = prepareTarget(dbSession, sourceProfile, toName);
backuper.copy(dbSession, sourceProfile, to);
return to;
}
- private QProfileDto prepareTarget(DbSession dbSession, OrganizationDto organization, QProfileDto sourceProfile, String toName) {
+ private QProfileDto prepareTarget(DbSession dbSession, QProfileDto sourceProfile, String toName) {
verify(sourceProfile.getName(), toName);
QProfileName toProfileName = new QProfileName(sourceProfile.getLanguage(), toName);
- QProfileDto toProfile = db.qualityProfileDao().selectByNameAndLanguage(dbSession, organization, toProfileName.getName(), toProfileName.getLanguage());
+ QProfileDto toProfile = db.qualityProfileDao().selectByNameAndLanguage(dbSession, toProfileName.getName(), toProfileName.getLanguage());
if (toProfile == null) {
- toProfile = factory.createCustom(dbSession, organization, toProfileName, sourceProfile.getParentKee());
+ toProfile = factory.createCustom(dbSession, toProfileName, sourceProfile.getParentKee());
dbSession.commit();
}
return toProfile;
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileFactory.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileFactory.java
index 6084db8e347..954d465eda9 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileFactory.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileFactory.java
@@ -22,7 +22,6 @@ package org.sonar.server.qualityprofile;
import java.util.Collection;
import javax.annotation.Nullable;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.exceptions.BadRequestException;
@@ -31,16 +30,16 @@ import org.sonar.server.exceptions.BadRequestException;
*/
public interface QProfileFactory {
- QProfileDto getOrCreateCustom(DbSession dbSession, OrganizationDto organization, QProfileName name);
+ QProfileDto getOrCreateCustom(DbSession dbSession, QProfileName name);
/**
* Create the quality profile in DB with the specified name.
*
* @throws BadRequestException if a quality profile with the specified name already exists
*/
- QProfileDto checkAndCreateCustom(DbSession dbSession, OrganizationDto organization, QProfileName name);
+ QProfileDto checkAndCreateCustom(DbSession dbSession, QProfileName name);
- QProfileDto createCustom(DbSession dbSession, OrganizationDto organization, QProfileName name, @Nullable String parentKey);
+ QProfileDto createCustom(DbSession dbSession, QProfileName name, @Nullable String parentKey);
/**
* Deletes the specified profiles from database and Elasticsearch.
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileFactoryImpl.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileFactoryImpl.java
index 6c01b8e7737..2e4ad898271 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileFactoryImpl.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileFactoryImpl.java
@@ -61,11 +61,10 @@ public class QProfileFactoryImpl implements QProfileFactory {
}
@Override
- public QProfileDto getOrCreateCustom(DbSession dbSession, OrganizationDto organization, QProfileName name) {
- requireNonNull(organization);
- QProfileDto profile = db.qualityProfileDao().selectByNameAndLanguage(dbSession, organization, name.getName(), name.getLanguage());
+ public QProfileDto getOrCreateCustom(DbSession dbSession, QProfileName name) {
+ QProfileDto profile = db.qualityProfileDao().selectByNameAndLanguage(dbSession, name.getName(), name.getLanguage());
if (profile == null) {
- profile = doCreate(dbSession, organization, name, null, false, false);
+ profile = doCreate(dbSession, name, null, false, false);
} else {
checkArgument(!profile.isBuiltIn(), "Operation forbidden for built-in Quality Profile '%s' with language '%s'", profile.getName(), profile.getLanguage());
}
@@ -74,20 +73,18 @@ public class QProfileFactoryImpl implements QProfileFactory {
}
@Override
- public QProfileDto checkAndCreateCustom(DbSession dbSession, OrganizationDto organization, QProfileName name) {
- requireNonNull(organization);
- QProfileDto dto = db.qualityProfileDao().selectByNameAndLanguage(dbSession, organization, name.getName(), name.getLanguage());
+ public QProfileDto checkAndCreateCustom(DbSession dbSession, QProfileName name) {
+ QProfileDto dto = db.qualityProfileDao().selectByNameAndLanguage(dbSession, name.getName(), name.getLanguage());
checkRequest(dto == null, "Quality profile already exists: %s", name);
- return doCreate(dbSession, organization, name, null,false, false);
+ return doCreate(dbSession, name, null, false, false);
}
@Override
- public QProfileDto createCustom(DbSession dbSession, OrganizationDto organization, QProfileName name, @Nullable String parentKey) {
- requireNonNull(organization);
- return doCreate(dbSession, organization, name, parentKey,false, false);
+ public QProfileDto createCustom(DbSession dbSession, QProfileName name, @Nullable String parentKey) {
+ return doCreate(dbSession, name, parentKey, false, false);
}
- private QProfileDto doCreate(DbSession dbSession, OrganizationDto organization, QProfileName name, @Nullable String parentKey, boolean isDefault, boolean isBuiltIn) {
+ private QProfileDto doCreate(DbSession dbSession, QProfileName name, @Nullable String parentKey, boolean isDefault, boolean isBuiltIn) {
if (StringUtils.isEmpty(name.getName())) {
throw BadRequestException.create("quality_profiles.profile_name_cant_be_blank");
}
@@ -96,7 +93,6 @@ public class QProfileFactoryImpl implements QProfileFactory {
.setKee(uuidFactory.create())
.setRulesProfileUuid(uuidFactory.create())
.setName(name.getName())
- .setOrganizationUuid(organization.getUuid())
.setLanguage(name.getLanguage())
.setIsBuiltIn(isBuiltIn)
.setParentKee(parentKey)
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileRulesImpl.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileRulesImpl.java
index b08efa0d4da..8aa01fc5255 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileRulesImpl.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/QProfileRulesImpl.java
@@ -99,7 +99,7 @@ public class QProfileRulesImpl implements QProfileRules {
public List<ActiveRuleChange> deleteRule(DbSession dbSession, RuleDefinitionDto rule) {
List<ActiveRuleChange> changes = new ArrayList<>();
List<String> activeRuleUuids = new ArrayList<>();
- db.activeRuleDao().selectByRuleUuidOfAllOrganizations(dbSession, rule.getUuid()).forEach(ar -> {
+ db.activeRuleDao().selectByRuleUuid(dbSession, rule.getUuid()).forEach(ar -> {
activeRuleUuids.add(ar.getUuid());
changes.add(new ActiveRuleChange(ActiveRuleChange.Type.DEACTIVATED, ar, rule));
});
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java
index c5e9b8bf8d1..ce2e26e3f95 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/RegisterQualityProfiles.java
@@ -79,7 +79,7 @@ public class RegisterQualityProfiles implements Startable {
Profiler profiler = Profiler.create(Loggers.get(getClass())).startInfo("Register quality profiles");
try (DbSession dbSession = dbClient.openSession(false);
- DbSession batchDbSession = dbClient.openSession(true)) {
+ DbSession batchDbSession = dbClient.openSession(true)) {
long startDate = system2.now();
Map<QProfileName, RulesProfileDto> persistedRuleProfiles = loadPersistedProfiles(dbSession);
@@ -148,7 +148,7 @@ public class RegisterQualityProfiles implements Startable {
}
Profiler profiler = Profiler.createIfDebug(Loggers.get(getClass())).start();
String newName = profile.getName() + " (outdated copy)";
- LOGGER.info("Rename Quality profiles [{}/{}] to [{}] in {} organizations", profile.getLanguage(), profile.getName(), newName, uuids.size());
+ LOGGER.info("Rename Quality profiles [{}/{}] to [{}]", profile.getLanguage(), profile.getName(), newName);
dbClient.qualityProfileDao().renameRulesProfilesAndCommit(dbSession, uuids, newName);
profiler.stopDebug(format("%d Quality profiles renamed to [%s]", uuids.size(), newName));
}
@@ -170,17 +170,16 @@ public class RegisterQualityProfiles implements Startable {
return;
}
- QProfileDto qualityProfile = dbClient.qualityProfileDao().selectByRuleProfileUuid(dbSession, qp.getOrganizationUuid(), rulesProfile.getUuid());
+ QProfileDto qualityProfile = dbClient.qualityProfileDao().selectByRuleProfileUuid(dbSession, rulesProfile.getUuid());
if (qualityProfile == null) {
return;
}
- Set<String> uuids = dbClient.defaultQProfileDao().selectExistingQProfileUuids(dbSession, qp.getOrganizationUuid(), Collections.singleton(qp.getKee()));
+ Set<String> uuids = dbClient.defaultQProfileDao().selectExistingQProfileUuids(dbSession, Collections.singleton(qp.getKee()));
dbClient.defaultQProfileDao().deleteByQProfileUuids(dbSession, uuids);
dbClient.defaultQProfileDao().insertOrUpdate(dbSession, new DefaultQProfileDto()
.setQProfileUuid(qualityProfile.getKee())
.setLanguage(qp.getLanguage())
- .setOrganizationUuid(qp.getOrganizationUuid())
);
LOGGER.info("Default built-in quality profile for language [{}] has been updated from [{}] to [{}] since previous default does not have active rules.",
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRuleAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRuleAction.java
index 51ced557419..f831730cbf4 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRuleAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRuleAction.java
@@ -28,7 +28,6 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.api.utils.KeyValueFormat;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.server.qualityprofile.QProfileRules;
@@ -101,8 +100,7 @@ public class ActivateRuleAction implements QProfileWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
String profileKey = request.mandatoryParam(PARAM_KEY);
QProfileDto profile = wsSupport.getProfile(dbSession, QProfileReference.fromKey(profileKey));
- OrganizationDto organization = wsSupport.getOrganization(dbSession, profile);
- wsSupport.checkCanEdit(dbSession, organization, profile);
+ wsSupport.checkCanEdit(dbSession, profile);
RuleActivation activation = readActivation(dbSession, request);
ruleActivator.activateAndCommit(dbSession, profile, singletonList(activation));
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRulesAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRulesAction.java
index e69305f76a7..e6b900cd0c4 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRulesAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ActivateRulesAction.java
@@ -25,7 +25,6 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.qualityprofile.BulkChangeResult;
import org.sonar.server.qualityprofile.QProfileRules;
@@ -89,8 +88,7 @@ public class ActivateRulesAction implements QProfileWsAction {
BulkChangeResult result;
try (DbSession dbSession = dbClient.openSession(false)) {
QProfileDto profile = wsSupport.getProfile(dbSession, fromKey(qualityProfileKey));
- OrganizationDto organization = wsSupport.getOrganization(dbSession, profile);
- wsSupport.checkCanEdit(dbSession, organization, profile);
+ wsSupport.checkCanEdit(dbSession, profile);
wsSupport.checkNotBuiltIn(profile);
RuleQuery ruleQuery = ruleQueryFactory.createRuleQuery(dbSession, request);
ruleQuery.setIncludeExternal(false);
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddGroupAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddGroupAction.java
index 07c4f3a469f..54b627d6a56 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddGroupAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddGroupAction.java
@@ -28,17 +28,14 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.core.util.UuidFactory;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.qualityprofile.QProfileEditGroupsDto;
import org.sonar.db.user.GroupDto;
import static org.sonar.core.util.stream.MoreCollectors.toSet;
-import static org.sonar.server.qualityprofile.ws.QProfileWsSupport.createOrganizationParam;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.ACTION_ADD_GROUP;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_GROUP;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class AddGroupAction implements QProfileWsAction {
@@ -85,17 +82,14 @@ public class AddGroupAction implements QProfileWsAction {
.setDescription("Group name")
.setRequired(true)
.setExampleValue("sonar-administrators");
-
- createOrganizationParam(action);
}
@Override
public void handle(Request request, Response response) throws Exception {
try (DbSession dbSession = dbClient.openSession(false)) {
- OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION));
- QProfileDto profile = wsSupport.getProfile(dbSession, organization, request.mandatoryParam(PARAM_QUALITY_PROFILE), request.mandatoryParam(PARAM_LANGUAGE));
- wsSupport.checkCanEdit(dbSession, organization, profile);
- GroupDto user = wsSupport.getGroup(dbSession, organization, request.mandatoryParam(PARAM_GROUP));
+ QProfileDto profile = wsSupport.getProfile(dbSession, request.mandatoryParam(PARAM_QUALITY_PROFILE), request.mandatoryParam(PARAM_LANGUAGE));
+ wsSupport.checkCanEdit(dbSession, profile);
+ GroupDto user = wsSupport.getGroup(dbSession, request.mandatoryParam(PARAM_GROUP));
addGroup(dbSession, profile, user);
}
response.noContent();
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddProjectAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddProjectAction.java
index d102b399db0..034cc8464e3 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddProjectAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddProjectAction.java
@@ -27,7 +27,6 @@ import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.api.web.UserRole;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.component.ComponentFinder;
@@ -69,8 +68,6 @@ public class AddProjectAction implements QProfileWsAction {
.setHandler(this);
QProfileReference.defineParams(action, languages);
- QProfileWsSupport.createOrganizationParam(action)
- .setSince("6.4");
action.createParam(PARAM_PROJECT)
.setDescription("Project key")
@@ -85,12 +82,7 @@ public class AddProjectAction implements QProfileWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
ProjectDto project = loadProject(dbSession, request);
QProfileDto profile = wsSupport.getProfile(dbSession, QProfileReference.fromName(request));
- OrganizationDto organization = wsSupport.getOrganization(dbSession, profile);
- checkPermissions(dbSession, organization, profile, project);
-
- if (!profile.getOrganizationUuid().equals(project.getOrganizationUuid())) {
- throw new IllegalArgumentException("Project and quality profile must have the same organization");
- }
+ checkPermissions(dbSession, profile, project);
QProfileDto currentProfile = dbClient.qualityProfileDao().selectAssociatedToProjectAndLanguage(dbSession, project, profile.getLanguage());
if (currentProfile == null) {
@@ -111,8 +103,8 @@ public class AddProjectAction implements QProfileWsAction {
return componentFinder.getProjectByKey(dbSession, projectKey);
}
- private void checkPermissions(DbSession dbSession, OrganizationDto organization, QProfileDto profile, ProjectDto project) {
- if (wsSupport.canEdit(dbSession, organization, profile)
+ private void checkPermissions(DbSession dbSession, QProfileDto profile, ProjectDto project) {
+ if (wsSupport.canEdit(dbSession, profile)
|| userSession.hasProjectPermission(UserRole.ADMIN, project)) {
return;
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddUserAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddUserAction.java
index 1c8c2fec8fc..efb4cec8783 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddUserAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/AddUserAction.java
@@ -28,17 +28,14 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.core.util.UuidFactory;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.qualityprofile.QProfileEditUsersDto;
import org.sonar.db.user.UserDto;
import static org.sonar.core.util.stream.MoreCollectors.toSet;
-import static org.sonar.server.qualityprofile.ws.QProfileWsSupport.createOrganizationParam;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.ACTION_ADD_USER;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LOGIN;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class AddUserAction implements QProfileWsAction {
@@ -86,16 +83,14 @@ public class AddUserAction implements QProfileWsAction {
.setRequired(true)
.setExampleValue("john.doe");
- createOrganizationParam(action);
}
@Override
public void handle(Request request, Response response) throws Exception {
try (DbSession dbSession = dbClient.openSession(false)) {
- OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION));
- QProfileDto profile = wsSupport.getProfile(dbSession, organization, request.mandatoryParam(PARAM_QUALITY_PROFILE), request.mandatoryParam(PARAM_LANGUAGE));
- wsSupport.checkCanEdit(dbSession, organization, profile);
- UserDto user = wsSupport.getUser(dbSession, organization, request.mandatoryParam(PARAM_LOGIN));
+ QProfileDto profile = wsSupport.getProfile(dbSession, request.mandatoryParam(PARAM_QUALITY_PROFILE), request.mandatoryParam(PARAM_LANGUAGE));
+ wsSupport.checkCanEdit(dbSession, profile);
+ UserDto user = wsSupport.getUser(dbSession, request.mandatoryParam(PARAM_LOGIN));
addUser(dbSession, profile, user);
}
response.noContent();
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/BackupAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/BackupAction.java
index b0f21afbb84..8bbf0bf2664 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/BackupAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/BackupAction.java
@@ -57,8 +57,6 @@ public class BackupAction implements QProfileWsAction {
.setHandler(this);
QProfileReference.defineParams(action, languages);
-
- QProfileWsSupport.createOrganizationParam(action).setSince("6.4");
}
@Override
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangeParentAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangeParentAction.java
index f6997d7c6cb..a10eca05d16 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangeParentAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangeParentAction.java
@@ -26,7 +26,6 @@ import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.api.server.ws.WebService.NewController;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.qualityprofile.QProfileTree;
import org.sonar.server.user.UserSession;
@@ -65,14 +64,12 @@ public class ChangeParentAction implements QProfileWsAction {
"</ul>")
.setHandler(this);
- QProfileWsSupport.createOrganizationParam(inheritance)
- .setSince("6.4");
QProfileReference.defineParams(inheritance, languages);
inheritance.createParam(QualityProfileWsParameters.PARAM_PARENT_QUALITY_PROFILE)
.setDescription("New parent profile name. <br> " +
"If no profile is provided, the inheritance link with current parent profile (if any) is broken, which deactivates all rules " +
- "which come from the parent and are not overridden.")
+ "which come from the parent and are not overridden.")
.setExampleValue("Sonar way");
}
@@ -83,15 +80,14 @@ public class ChangeParentAction implements QProfileWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
QProfileDto profile = wsSupport.getProfile(dbSession, reference);
- OrganizationDto organization = wsSupport.getOrganization(dbSession, profile);
- wsSupport.checkCanEdit(dbSession, organization, profile);
+ wsSupport.checkCanEdit(dbSession, profile);
String parentName = request.param(QualityProfileWsParameters.PARAM_PARENT_QUALITY_PROFILE);
if (isEmpty(parentName)) {
ruleActivator.removeParentAndCommit(dbSession, profile);
} else {
String parentLanguage = request.mandatoryParam(PARAM_LANGUAGE);
- QProfileReference parentRef = QProfileReference.fromName(organization.getKey(), parentLanguage, parentName);
+ QProfileReference parentRef = QProfileReference.fromName(parentLanguage, parentName);
QProfileDto parent = wsSupport.getProfile(dbSession, parentRef);
ruleActivator.setParentAndCommit(dbSession, profile, parent);
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangelogAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangelogAction.java
index c95c8ff77e9..f4933c2a9d2 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangelogAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangelogAction.java
@@ -73,9 +73,6 @@ public class ChangelogAction implements QProfileWsAction {
.setHandler(this)
.setResponseExample(getClass().getResource("changelog-example.json"));
- QProfileWsSupport.createOrganizationParam(wsAction)
- .setSince("6.4");
-
QProfileReference.defineParams(wsAction, languages);
wsAction.addPagingParams(50, MAX_PAGE_SIZE);
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CompareAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CompareAction.java
index 83a6126f8d8..9aae725d919 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CompareAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CompareAction.java
@@ -25,7 +25,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Objects;
import javax.annotation.Nullable;
import org.sonar.api.resources.Language;
import org.sonar.api.resources.Languages;
@@ -112,12 +111,6 @@ public class CompareAction implements QProfileWsAction {
QProfileDto right = dbClient.qualityProfileDao().selectByUuid(dbSession, rightKey);
checkArgument(right != null, "Could not find right profile '%s'", rightKey);
- checkArgument(Objects.equals(left.getOrganizationUuid(), right.getOrganizationUuid()),
- "Cannot compare quality profiles of different organizations. Quality profile left with key '%s' belongs to organization '%s', " +
- "quality profile right with key '%s' belongs to organization '%s'.",
- leftKey, left.getOrganizationUuid(), rightKey, right.getOrganizationUuid());
- wsSupport.getOrganization(dbSession, left);
-
QProfileComparisonResult result = comparator.compare(dbSession, left, right);
List<RuleDefinitionDto> referencedRules = dbClient.ruleDao().selectDefinitionByKeys(dbSession, new ArrayList<>(result.collectRuleKeys()));
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CopyAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CopyAction.java
index 841a791400b..d26d9ff519f 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CopyAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CopyAction.java
@@ -87,10 +87,10 @@ public class CopyAction implements QProfileWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
QProfileDto sourceProfile = wsSupport.getProfile(dbSession, QProfileReference.fromKey(profileKey));
- userSession.checkPermission(ADMINISTER_QUALITY_PROFILES, sourceProfile.getOrganizationUuid());
+ userSession.checkPermission(ADMINISTER_QUALITY_PROFILES, wsSupport.getDefaultOrganization(dbSession));
QProfileDto copiedProfile = profileCopier.copyToName(dbSession, sourceProfile, newName);
- boolean isDefault = dbClient.defaultQProfileDao().isDefault(dbSession, copiedProfile.getOrganizationUuid(), copiedProfile.getKee());
+ boolean isDefault = dbClient.defaultQProfileDao().isDefault(dbSession, copiedProfile.getKee());
CopyWsResponse wsResponse = buildResponse(copiedProfile, isDefault);
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CreateAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CreateAction.java
index 6805c7c01da..6dae9ff38df 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CreateAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/CreateAction.java
@@ -42,12 +42,10 @@ import org.sonarqube.ws.Qualityprofiles.CreateWsResponse;
import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonar.server.language.LanguageParamUtils.getOrderedLanguageKeys;
-import static org.sonar.server.qualityprofile.ws.QProfileWsSupport.createOrganizationParam;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.ACTION_CREATE;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_NAME;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
public class CreateAction implements QProfileWsAction {
@@ -90,9 +88,6 @@ public class CreateAction implements QProfileWsAction {
.setSince("5.2")
.setHandler(this);
- createOrganizationParam(create)
- .setSince("6.4");
-
create.createParam(PARAM_NAME)
.setRequired(true)
.setMaximumLength(NAME_MAXIMUM_LENGTH)
@@ -115,17 +110,16 @@ public class CreateAction implements QProfileWsAction {
public void handle(Request request, Response response) throws Exception {
userSession.checkLoggedIn();
try (DbSession dbSession = dbClient.openSession(false)) {
- OrganizationDto organization = qProfileWsSupport.getOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION));
+ OrganizationDto organization = qProfileWsSupport.getDefaultOrganization(dbSession);
userSession.checkPermission(ADMINISTER_QUALITY_PROFILES, organization);
- CreateRequest createRequest = toRequest(request, organization);
- writeProtobuf(doHandle(dbSession, createRequest, request, organization), request, response);
+ CreateRequest createRequest = toRequest(request);
+ writeProtobuf(doHandle(dbSession, createRequest, request), request, response);
}
}
- private CreateWsResponse doHandle(DbSession dbSession, CreateRequest createRequest, Request request, OrganizationDto organization) {
+ private CreateWsResponse doHandle(DbSession dbSession, CreateRequest createRequest, Request request) {
QProfileResult result = new QProfileResult();
- QProfileDto profile = profileFactory.checkAndCreateCustom(dbSession, organization,
- QProfileName.createFor(createRequest.getLanguage(), createRequest.getName()));
+ QProfileDto profile = profileFactory.checkAndCreateCustom(dbSession, QProfileName.createFor(createRequest.getLanguage(), createRequest.getName()));
result.setProfile(profile);
for (ProfileImporter importer : importers) {
String importerKey = importer.getKey();
@@ -135,21 +129,19 @@ public class CreateAction implements QProfileWsAction {
}
}
activeRuleIndexer.commitAndIndex(dbSession, result.getChanges());
- return buildResponse(result, organization);
+ return buildResponse(result);
}
- private static CreateRequest toRequest(Request request, OrganizationDto organization) {
+ private static CreateRequest toRequest(Request request) {
Builder builder = CreateRequest.builder()
- .setOrganizationKey(organization.getKey())
.setLanguage(request.mandatoryParam(PARAM_LANGUAGE))
.setName(request.mandatoryParam(PARAM_NAME));
return builder.build();
}
- private CreateWsResponse buildResponse(QProfileResult result, OrganizationDto organization) {
+ private CreateWsResponse buildResponse(QProfileResult result) {
String language = result.profile().getLanguage();
CreateWsResponse.QualityProfile.Builder builder = CreateWsResponse.QualityProfile.newBuilder()
- .setOrganization(organization.getKey())
.setKey(result.profile().getKee())
.setName(result.profile().getName())
.setLanguage(language)
@@ -170,15 +162,12 @@ public class CreateAction implements QProfileWsAction {
}
private static class CreateRequest {
-
private final String name;
private final String language;
- private final String organizationKey;
private CreateRequest(Builder builder) {
this.name = builder.name;
this.language = builder.language;
- this.organizationKey = builder.organizationKey;
}
public String getLanguage() {
@@ -189,10 +178,6 @@ public class CreateAction implements QProfileWsAction {
return name;
}
- public String getOrganizationKey() {
- return organizationKey;
- }
-
public static Builder builder() {
return new Builder();
}
@@ -201,7 +186,6 @@ public class CreateAction implements QProfileWsAction {
private static class Builder {
private String language;
private String name;
- private String organizationKey;
private Builder() {
// enforce factory method use
@@ -217,15 +201,9 @@ public class CreateAction implements QProfileWsAction {
return this;
}
- public Builder setOrganizationKey(@Nullable String organizationKey) {
- this.organizationKey = organizationKey;
- return this;
- }
-
public CreateRequest build() {
checkArgument(language != null && !language.isEmpty(), "Language is mandatory and must not be empty.");
checkArgument(name != null && !name.isEmpty(), "Profile name is mandatory and must not be empty.");
- checkArgument(organizationKey == null || !organizationKey.isEmpty(), "Organization key may be either null or not empty. Empty organization key is invalid.");
return new CreateRequest(this);
}
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRuleAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRuleAction.java
index f1d0587bbd4..24a85ea1320 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRuleAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRuleAction.java
@@ -25,7 +25,6 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.server.qualityprofile.QProfileRules;
@@ -83,8 +82,7 @@ public class DeactivateRuleAction implements QProfileWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
RuleDefinitionDto rule = wsSupport.getRule(dbSession, ruleKey);
QProfileDto profile = wsSupport.getProfile(dbSession, QProfileReference.fromKey(qualityProfileKey));
- OrganizationDto organization = wsSupport.getOrganization(dbSession, profile);
- wsSupport.checkCanEdit(dbSession, organization, profile);
+ wsSupport.checkCanEdit(dbSession, profile);
ruleActivator.deactivateAndCommit(dbSession, profile, singletonList(rule.getUuid()));
}
response.noContent();
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRulesAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRulesAction.java
index 3929b96a404..8f69ad43184 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRulesAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeactivateRulesAction.java
@@ -24,7 +24,6 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.qualityprofile.BulkChangeResult;
import org.sonar.server.qualityprofile.QProfileRules;
@@ -82,8 +81,7 @@ public class DeactivateRulesAction implements QProfileWsAction {
BulkChangeResult result;
try (DbSession dbSession = dbClient.openSession(false)) {
QProfileDto profile = wsSupport.getProfile(dbSession, QProfileReference.fromKey(qualityProfileKey));
- OrganizationDto organization = wsSupport.getOrganization(dbSession, profile);
- wsSupport.checkCanEdit(dbSession, organization, profile);
+ wsSupport.checkCanEdit(dbSession, profile);
RuleQuery ruleQuery = ruleQueryFactory.createRuleQuery(dbSession, request);
ruleQuery.setIncludeExternal(false);
result = ruleActivator.bulkDeactivateAndCommit(dbSession, profile, ruleQuery);
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeleteAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeleteAction.java
index adb9a74be64..a64419ab72d 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeleteAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/DeleteAction.java
@@ -32,14 +32,12 @@ import org.sonar.api.server.ws.WebService.NewController;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.qualityprofile.QProfileFactory;
import org.sonar.server.user.UserSession;
import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Collections.singleton;
-import static org.sonar.server.qualityprofile.ws.QProfileWsSupport.createOrganizationParam;
public class DeleteAction implements QProfileWsAction {
@@ -71,8 +69,6 @@ public class DeleteAction implements QProfileWsAction {
.setHandler(this);
QProfileReference.defineParams(action, languages);
- createOrganizationParam(action)
- .setSince("6.4");
}
@Override
@@ -81,8 +77,7 @@ public class DeleteAction implements QProfileWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
QProfileDto profile = wsSupport.getProfile(dbSession, QProfileReference.fromName(request));
- OrganizationDto organization = wsSupport.getOrganization(dbSession, profile);
- wsSupport.checkCanEdit(dbSession, organization, profile);
+ wsSupport.checkCanEdit(dbSession, profile);
Collection<QProfileDto> descendants = selectDescendants(dbSession, profile);
ensureNoneIsMarkedAsDefault(dbSession, profile, descendants);
@@ -102,7 +97,7 @@ public class DeleteAction implements QProfileWsAction {
allUuids.add(profile.getKee());
descendants.forEach(p -> allUuids.add(p.getKee()));
- Set<String> uuidsOfDefaultProfiles = dbClient.defaultQProfileDao().selectExistingQProfileUuids(dbSession, profile.getOrganizationUuid(), allUuids);
+ Set<String> uuidsOfDefaultProfiles = dbClient.defaultQProfileDao().selectExistingQProfileUuids(dbSession, allUuids);
checkArgument(!uuidsOfDefaultProfiles.contains(profile.getKee()), "Profile '%s' cannot be deleted because it is marked as default", profile.getName());
descendants.stream()
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ExportAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ExportAction.java
index 509364253bb..e60d07f49d1 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ExportAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ExportAction.java
@@ -39,7 +39,6 @@ import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.language.LanguageParamUtils;
import org.sonar.server.qualityprofile.QProfileBackuper;
@@ -48,8 +47,6 @@ import org.sonarqube.ws.MediaTypes;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
-import static org.sonar.server.qualityprofile.ws.QProfileWsSupport.createOrganizationParam;
-import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
@@ -61,14 +58,12 @@ public class ExportAction implements QProfileWsAction {
private final QProfileBackuper backuper;
private final QProfileExporters exporters;
private final Languages languages;
- private final QProfileWsSupport wsSupport;
- public ExportAction(DbClient dbClient, QProfileBackuper backuper, QProfileExporters exporters, Languages languages, QProfileWsSupport wsSupport) {
+ public ExportAction(DbClient dbClient, QProfileBackuper backuper, QProfileExporters exporters, Languages languages) {
this.dbClient = dbClient;
this.backuper = backuper;
this.exporters = exporters;
this.languages = languages;
- this.wsSupport = wsSupport;
}
@Override
@@ -89,9 +84,6 @@ public class ExportAction implements QProfileWsAction {
.setExampleValue(LanguageParamUtils.getExampleValue(languages))
.setPossibleValues(LanguageParamUtils.getOrderedLanguageKeys(languages));
- createOrganizationParam(action)
- .setSince("6.4");
-
Set<String> exporterKeys = Arrays.stream(languages.all())
.map(language -> exporters.exportersForLanguage(language.getKey()))
.flatMap(Collection::stream)
@@ -113,8 +105,7 @@ public class ExportAction implements QProfileWsAction {
String language = request.mandatoryParam(PARAM_LANGUAGE);
try (DbSession dbSession = dbClient.openSession(false)) {
- OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION));
- QProfileDto profile = loadProfile(dbSession, organization, language, name);
+ QProfileDto profile = loadProfile(dbSession, language, name);
String exporterKey = exporters.exportersForLanguage(profile.getLanguage()).isEmpty() ? null : request.param(PARAM_EXPORTER_KEY);
writeResponse(dbSession, profile, exporterKey, response);
}
@@ -137,14 +128,14 @@ public class ExportAction implements QProfileWsAction {
IOUtils.write(bufferStream.toByteArray(), output);
}
- private QProfileDto loadProfile(DbSession dbSession, OrganizationDto organization, String language, @Nullable String name) {
+ private QProfileDto loadProfile(DbSession dbSession, String language, @Nullable String name) {
QProfileDto profile;
if (name == null) {
// return the default profile
- profile = dbClient.qualityProfileDao().selectDefaultProfile(dbSession, organization, language);
+ profile = dbClient.qualityProfileDao().selectDefaultProfile(dbSession, language);
} else {
- profile = dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, organization, name, language);
+ profile = dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, name, language);
}
return checkFound(profile, "Could not find profile with name '%s' for language '%s'", name, language);
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/InheritanceAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/InheritanceAction.java
index 1d4f0fa6e6c..c3ae6a4a978 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/InheritanceAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/InheritanceAction.java
@@ -30,7 +30,6 @@ import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.api.server.ws.WebService.NewController;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleCountQuery;
import org.sonar.db.qualityprofile.ActiveRuleDao;
import org.sonar.db.qualityprofile.QProfileDto;
@@ -40,7 +39,6 @@ import org.sonarqube.ws.Qualityprofiles.InheritanceWsResponse.QualityProfile;
import static java.util.Collections.singleton;
import static java.util.Optional.ofNullable;
import static org.sonar.db.qualityprofile.ActiveRuleDto.OVERRIDES;
-import static org.sonar.server.qualityprofile.ws.QProfileWsSupport.createOrganizationParam;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
public class InheritanceAction implements QProfileWsAction {
@@ -63,8 +61,6 @@ public class InheritanceAction implements QProfileWsAction {
.setHandler(this)
.setResponseExample(getClass().getResource("inheritance-example.json"));
- createOrganizationParam(inheritance)
- .setSince("6.4");
QProfileReference.defineParams(inheritance, languages);
}
@@ -73,14 +69,13 @@ public class InheritanceAction implements QProfileWsAction {
QProfileReference reference = QProfileReference.fromName(request);
try (DbSession dbSession = dbClient.openSession(false)) {
QProfileDto profile = wsSupport.getProfile(dbSession, reference);
- OrganizationDto organization = wsSupport.getOrganization(dbSession, profile);
List<QProfileDto> ancestors = ancestors(profile, dbSession);
List<QProfileDto> children = dbClient.qualityProfileDao().selectChildren(dbSession, singleton(profile));
List<QProfileDto> allProfiles = new ArrayList<>();
allProfiles.add(profile);
allProfiles.addAll(ancestors);
allProfiles.addAll(children);
- Statistics statistics = new Statistics(dbSession, organization, allProfiles);
+ Statistics statistics = new Statistics(dbSession, allProfiles);
writeProtobuf(buildResponse(profile, ancestors, children, statistics), request, response);
}
@@ -146,9 +141,9 @@ public class InheritanceAction implements QProfileWsAction {
private final Map<String, Long> countRulesByProfileKey;
private final Map<String, Long> countOverridingRulesByProfileKey;
- private Statistics(DbSession dbSession, OrganizationDto organization, List<QProfileDto> profiles) {
+ private Statistics(DbSession dbSession, List<QProfileDto> profiles) {
ActiveRuleDao dao = dbClient.activeRuleDao();
- ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder().setOrganization(organization);
+ ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder();
countRulesByProfileKey = dao.countActiveRulesByQuery(dbSession, builder.setProfiles(profiles).build());
countOverridingRulesByProfileKey = dao.countActiveRulesByQuery(dbSession, builder.setProfiles(profiles).setInheritance(OVERRIDES).build());
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ProjectsAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ProjectsAction.java
index 1ad0f1691a6..767fec81c8e 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ProjectsAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ProjectsAction.java
@@ -35,7 +35,6 @@ import org.sonar.api.web.UserRole;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ProjectQprofileAssociationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.exceptions.NotFoundException;
@@ -52,12 +51,10 @@ public class ProjectsAction implements QProfileWsAction {
private final DbClient dbClient;
private final UserSession userSession;
- private final QProfileWsSupport wsSupport;
- public ProjectsAction(DbClient dbClient, UserSession userSession, QProfileWsSupport wsSupport) {
+ public ProjectsAction(DbClient dbClient, UserSession userSession) {
this.dbClient = dbClient;
this.userSession = userSession;
- this.wsSupport = wsSupport;
}
@Override
@@ -93,7 +90,6 @@ public class ProjectsAction implements QProfileWsAction {
String profileKey = request.mandatoryParam(PARAM_KEY);
try (DbSession session = dbClient.openSession(false)) {
- checkProfileExists(profileKey, session);
String selected = request.param(Param.SELECTED);
String query = request.param(Param.TEXT_QUERY);
int page = request.mandatoryParamAsInt(Param.PAGE);
@@ -121,24 +117,20 @@ public class ProjectsAction implements QProfileWsAction {
}
}
- private void checkProfileExists(String profileKey, DbSession session) {
- if (dbClient.qualityProfileDao().selectByUuid(session, profileKey) == null) {
- throw new NotFoundException(String.format("Could not find a quality profile with key '%s'", profileKey));
- }
- }
-
private List<ProjectQprofileAssociationDto> loadAllProjects(String profileKey, DbSession session, String selected, String query) {
QProfileDto profile = dbClient.qualityProfileDao().selectByUuid(session, profileKey);
- OrganizationDto organization = wsSupport.getOrganization(session, profile);
+ if (profile == null) {
+ throw new NotFoundException("Quality profile not found: " + profileKey);
+ }
List<ProjectQprofileAssociationDto> projects;
SelectionMode selectionMode = SelectionMode.fromParam(selected);
if (SelectionMode.SELECTED == selectionMode) {
- projects = dbClient.qualityProfileDao().selectSelectedProjects(session, organization, profile, query);
+ projects = dbClient.qualityProfileDao().selectSelectedProjects(session, profile, query);
} else if (SelectionMode.DESELECTED == selectionMode) {
- projects = dbClient.qualityProfileDao().selectDeselectedProjects(session, organization, profile, query);
+ projects = dbClient.qualityProfileDao().selectDeselectedProjects(session, profile, query);
} else {
- projects = dbClient.qualityProfileDao().selectProjectAssociations(session, organization, profile, query);
+ projects = dbClient.qualityProfileDao().selectProjectAssociations(session, profile, query);
}
return projects;
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileReference.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileReference.java
index cb2872861d7..001576115b0 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileReference.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileReference.java
@@ -20,7 +20,7 @@
package org.sonar.server.qualityprofile.ws;
import java.util.Arrays;
-import java.util.Optional;
+import java.util.Objects;
import javax.annotation.Nullable;
import org.sonar.api.resources.Language;
import org.sonar.api.resources.Languages;
@@ -30,7 +30,6 @@ import org.sonar.core.util.stream.MoreCollectors;
import static com.google.common.base.Preconditions.checkState;
import static java.util.Objects.requireNonNull;
-import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
@@ -50,20 +49,17 @@ public class QProfileReference {
private final Type type;
private final String key;
- private final String organizationKey;
private final String language;
private final String name;
- private QProfileReference(Type type, @Nullable String key, @Nullable String organizationKey, @Nullable String language, @Nullable String name) {
+ private QProfileReference(Type type, @Nullable String key, @Nullable String language, @Nullable String name) {
this.type = type;
if (type == Type.KEY) {
this.key = requireNonNull(key);
- this.organizationKey = null;
this.language = null;
this.name = null;
} else {
this.key = null;
- this.organizationKey = organizationKey;
this.language = requireNonNull(language);
this.name = requireNonNull(name);
}
@@ -88,15 +84,6 @@ public class QProfileReference {
}
/**
- * @return key of organization. It is empty when {@link #hasKey()} is {@code true} or if {@link #hasKey()} is
- * {@code false} and the default organization must be used.
- */
- public Optional<String> getOrganizationKey() {
- checkState(type == Type.NAME, "Organization is not defined. Please call hasKey().");
- return Optional.ofNullable(organizationKey);
- }
-
- /**
* @return non-null language
* @throws IllegalStateException if {@link #hasKey()} does not return {@code false}
*/
@@ -123,41 +110,26 @@ public class QProfileReference {
return false;
}
QProfileReference that = (QProfileReference) o;
- if (key != null ? !key.equals(that.key) : (that.key != null)) {
- return false;
- }
- if (organizationKey != null ? !organizationKey.equals(that.organizationKey) : (that.organizationKey != null)) {
- return false;
- }
- if (language != null ? !language.equals(that.language) : (that.language != null)) {
- return false;
- }
- return name != null ? name.equals(that.name) : (that.name == null);
-
+ return Objects.equals(key, that.key) && Objects.equals(language, that.language) && Objects.equals(name, that.name);
}
@Override
public int hashCode() {
- int result = key != null ? key.hashCode() : 0;
- result = 31 * result + (organizationKey != null ? organizationKey.hashCode() : 0);
- result = 31 * result + (language != null ? language.hashCode() : 0);
- result = 31 * result + (name != null ? name.hashCode() : 0);
- return result;
+ return Objects.hash(key, language, name);
}
public static QProfileReference fromName(Request request) {
- String organizationKey = request.param(PARAM_ORGANIZATION);
String lang = request.mandatoryParam(PARAM_LANGUAGE);
String name = request.mandatoryParam(PARAM_QUALITY_PROFILE);
- return fromName(organizationKey, lang, name);
+ return fromName(lang, name);
}
public static QProfileReference fromKey(String key) {
- return new QProfileReference(Type.KEY, key, null, null, null);
+ return new QProfileReference(Type.KEY, key, null, null);
}
- public static QProfileReference fromName(@Nullable String organizationKey, String lang, String name) {
- return new QProfileReference(Type.NAME, null, organizationKey, requireNonNull(lang), requireNonNull(name));
+ public static QProfileReference fromName(String lang, String name) {
+ return new QProfileReference(Type.NAME, null, requireNonNull(lang), requireNonNull(name));
}
public static void defineParams(WebService.NewAction action, Languages languages) {
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileWsSupport.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileWsSupport.java
index 3a7251a388a..2066a4ed7a1 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileWsSupport.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/QProfileWsSupport.java
@@ -20,11 +20,8 @@
package org.sonar.server.qualityprofile.ws;
import java.util.Optional;
-import javax.annotation.Nullable;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.server.ServerSide;
-import org.sonar.api.server.ws.WebService.NewAction;
-import org.sonar.api.server.ws.WebService.NewParam;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
@@ -38,13 +35,10 @@ import org.sonar.server.user.UserSession;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
-import static java.util.Objects.requireNonNull;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.user.AbstractUserSession.insufficientPrivilegesException;
-import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ORGANIZATION;
@ServerSide
public class QProfileWsSupport {
@@ -59,32 +53,10 @@ public class QProfileWsSupport {
this.defaultOrganizationProvider = defaultOrganizationProvider;
}
- public static NewParam createOrganizationParam(NewAction action) {
- return action
- .createParam(PARAM_ORGANIZATION)
- .setDescription("Organization key. If no organization is provided, the default organization is used.")
- .setRequired(false)
- .setInternal(true)
- .setExampleValue("my-org");
- }
-
- public OrganizationDto getOrganization(DbSession dbSession, QProfileDto profile) {
- requireNonNull(profile);
- String organizationUuid = profile.getOrganizationUuid();
- OrganizationDto organization = dbClient.organizationDao().selectByUuid(dbSession, organizationUuid)
- .orElseThrow(() -> new IllegalStateException("Cannot load organization with uuid=" + organizationUuid));
- checkMembershipOnPaidOrganization(organization);
- return organization;
- }
-
- public OrganizationDto getOrganizationByKey(DbSession dbSession, @Nullable String organizationKey) {
- String organizationOrDefaultKey = Optional.ofNullable(organizationKey)
- .orElseGet(defaultOrganizationProvider.get()::getKey);
- OrganizationDto organization = checkFoundWithOptional(
- dbClient.organizationDao().selectByKey(dbSession, organizationOrDefaultKey),
+ public OrganizationDto getDefaultOrganization(DbSession dbSession) {
+ String organizationOrDefaultKey = defaultOrganizationProvider.get().getKey();
+ return checkFoundWithOptional(dbClient.organizationDao().selectByKey(dbSession, organizationOrDefaultKey),
"No organization with key '%s'", organizationOrDefaultKey);
- checkMembershipOnPaidOrganization(organization);
- return organization;
}
public RuleDefinitionDto getRule(DbSession dbSession, RuleKey ruleKey) {
@@ -104,46 +76,43 @@ public class QProfileWsSupport {
if (ref.hasKey()) {
profile = dbClient.qualityProfileDao().selectByUuid(dbSession, ref.getKey());
checkFound(profile, "Quality Profile with key '%s' does not exist", ref.getKey());
- // Load organization to execute various checks (existence, membership if paid organization, etc.)
- getOrganization(dbSession, profile);
} else {
- OrganizationDto org = getOrganizationByKey(dbSession, ref.getOrganizationKey().orElse(null));
- profile = dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, org, ref.getName(), ref.getLanguage());
- checkFound(profile, "Quality Profile for language '%s' and name '%s' does not exist%s", ref.getLanguage(), ref.getName(),
- ref.getOrganizationKey().map(o -> " in organization '" + o + "'").orElse(""));
+ profile = dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, ref.getName(), ref.getLanguage());
+ checkFound(profile, "Quality Profile for language '%s' and name '%s' does not exist", ref.getLanguage(), ref.getName());
}
return profile;
}
- public QProfileDto getProfile(DbSession dbSession, OrganizationDto organization, String name, String language) {
- QProfileDto profile = dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, organization, name, language);
- checkFound(profile, "Quality Profile for language '%s' and name '%s' does not exist in organization '%s'", language, name, organization.getKey());
+ public QProfileDto getProfile(DbSession dbSession, String name, String language) {
+ QProfileDto profile = dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, name, language);
+ checkFound(profile, "Quality Profile for language '%s' and name '%s' does not exist", language, name);
return profile;
}
- public UserDto getUser(DbSession dbSession, OrganizationDto organization, String login) {
+ public UserDto getUser(DbSession dbSession, String login) {
UserDto user = dbClient.userDao().selectActiveUserByLogin(dbSession, login);
checkFound(user, "User with login '%s' is not found'", login);
- checkMembership(dbSession, organization, user);
+ checkMembership(dbSession, getDefaultOrganization(dbSession), user);
return user;
}
- GroupDto getGroup(DbSession dbSession, OrganizationDto organization, String groupName) {
+ GroupDto getGroup(DbSession dbSession, String groupName) {
+ OrganizationDto organization = getDefaultOrganization(dbSession);
Optional<GroupDto> group = dbClient.groupDao().selectByName(dbSession, organization.getUuid(), groupName);
checkFoundWithOptional(group, "No group with name '%s' in organization '%s'", groupName, organization.getKey());
return group.get();
}
- public void checkPermission(DbSession dbSession, QProfileDto profile) {
- OrganizationDto organization = getOrganization(dbSession, profile);
+ public void checkPermission(DbSession dbSession) {
+ OrganizationDto organization = getDefaultOrganization(dbSession);
userSession.checkPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
}
- boolean canEdit(DbSession dbSession, OrganizationDto organization, QProfileDto profile) {
+ boolean canEdit(DbSession dbSession, QProfileDto profile) {
if (profile.isBuiltIn() || !userSession.isLoggedIn()) {
return false;
}
- if (userSession.hasPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization)) {
+ if (userSession.hasPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, defaultOrganizationProvider.get().getUuid())) {
return true;
}
@@ -153,9 +122,9 @@ public class QProfileWsSupport {
|| dbClient.qProfileEditGroupsDao().exists(dbSession, profile, userSession.getGroups());
}
- public void checkCanEdit(DbSession dbSession, OrganizationDto organization, QProfileDto profile) {
+ public void checkCanEdit(DbSession dbSession, QProfileDto profile) {
checkNotBuiltIn(profile);
- if (!canEdit(dbSession, organization, profile)) {
+ if (!canEdit(dbSession, profile)) {
throw insufficientPrivilegesException();
}
}
@@ -165,19 +134,10 @@ public class QProfileWsSupport {
}
private void checkMembership(DbSession dbSession, OrganizationDto organization, UserDto user) {
- checkArgument(isMember(dbSession, organization, user.getUuid()),
- "User '%s' is not member of organization '%s'", user.getLogin(), organization.getKey());
+ checkArgument(isMember(dbSession, organization, user.getUuid()), "User '%s' is not member of organization '%s'", user.getLogin(), organization.getKey());
}
private boolean isMember(DbSession dbSession, OrganizationDto organization, String userUuid) {
return dbClient.organizationMemberDao().select(dbSession, organization.getUuid(), userUuid).isPresent();
}
-
- private void checkMembershipOnPaidOrganization(OrganizationDto organization) {
- if (!organization.getSubscription().equals(PAID)) {
- return;
- }
- userSession.checkMembership(organization);
- }
-
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveGroupAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveGroupAction.java
index bc204732ee8..e7d7742cdb8 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveGroupAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveGroupAction.java
@@ -27,16 +27,13 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.user.GroupDto;
import static org.sonar.core.util.stream.MoreCollectors.toSet;
-import static org.sonar.server.qualityprofile.ws.QProfileWsSupport.createOrganizationParam;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.ACTION_REMOVE_GROUP;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_GROUP;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class RemoveGroupAction implements QProfileWsAction {
@@ -81,17 +78,14 @@ public class RemoveGroupAction implements QProfileWsAction {
.setDescription("Group name")
.setRequired(true)
.setExampleValue("sonar-administrators");
-
- createOrganizationParam(action);
}
@Override
public void handle(Request request, Response response) throws Exception {
try (DbSession dbSession = dbClient.openSession(false)) {
- OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION));
- QProfileDto profile = wsSupport.getProfile(dbSession, organization, request.mandatoryParam(PARAM_QUALITY_PROFILE), request.mandatoryParam(PARAM_LANGUAGE));
- wsSupport.checkCanEdit(dbSession, organization, profile);
- GroupDto group = wsSupport.getGroup(dbSession, organization, request.mandatoryParam(PARAM_GROUP));
+ QProfileDto profile = wsSupport.getProfile(dbSession, request.mandatoryParam(PARAM_QUALITY_PROFILE), request.mandatoryParam(PARAM_LANGUAGE));
+ wsSupport.checkCanEdit(dbSession, profile);
+ GroupDto group = wsSupport.getGroup(dbSession, request.mandatoryParam(PARAM_GROUP));
removeGroup(dbSession, profile, group);
}
response.noContent();
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveProjectAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveProjectAction.java
index 2d20549b46f..b0a0df56b62 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveProjectAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveProjectAction.java
@@ -27,7 +27,6 @@ import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.api.web.UserRole;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.component.ComponentFinder;
@@ -68,7 +67,6 @@ public class RemoveProjectAction implements QProfileWsAction {
.setPost(true)
.setHandler(this);
QProfileReference.defineParams(action, languages);
- QProfileWsSupport.createOrganizationParam(action).setSince("6.4");
action.createParam(PARAM_PROJECT)
.setDescription("Project key")
@@ -83,11 +81,7 @@ public class RemoveProjectAction implements QProfileWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
ProjectDto project = loadProject(dbSession, request);
QProfileDto profile = wsSupport.getProfile(dbSession, QProfileReference.fromName(request));
- OrganizationDto organization = wsSupport.getOrganization(dbSession, profile);
- checkPermissions(dbSession, organization, profile, project);
- if (!profile.getOrganizationUuid().equals(project.getOrganizationUuid())) {
- throw new IllegalArgumentException("Project and Quality profile must have the same organization");
- }
+ checkPermissions(dbSession, profile, project);
dbClient.qualityProfileDao().deleteProjectProfileAssociation(dbSession, project, profile);
dbSession.commit();
@@ -101,8 +95,8 @@ public class RemoveProjectAction implements QProfileWsAction {
return componentFinder.getProjectByKey(dbSession, projectKey);
}
- private void checkPermissions(DbSession dbSession, OrganizationDto organization, QProfileDto profile, ProjectDto project) {
- if (wsSupport.canEdit(dbSession, organization, profile) || userSession.hasProjectPermission(UserRole.ADMIN, project)) {
+ private void checkPermissions(DbSession dbSession, QProfileDto profile, ProjectDto project) {
+ if (wsSupport.canEdit(dbSession, profile) || userSession.hasProjectPermission(UserRole.ADMIN, project)) {
return;
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveUserAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveUserAction.java
index 44a35498cb4..e0096ff8fd3 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveUserAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RemoveUserAction.java
@@ -27,16 +27,13 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.user.UserDto;
import static org.sonar.core.util.stream.MoreCollectors.toSet;
-import static org.sonar.server.qualityprofile.ws.QProfileWsSupport.createOrganizationParam;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.ACTION_REMOVE_USER;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LOGIN;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class RemoveUserAction implements QProfileWsAction {
@@ -81,17 +78,14 @@ public class RemoveUserAction implements QProfileWsAction {
.setDescription("User login")
.setRequired(true)
.setExampleValue("john.doe");
-
- createOrganizationParam(action);
}
@Override
public void handle(Request request, Response response) throws Exception {
try (DbSession dbSession = dbClient.openSession(false)) {
- OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION));
- QProfileDto profile = wsSupport.getProfile(dbSession, organization, request.mandatoryParam(PARAM_QUALITY_PROFILE), request.mandatoryParam(PARAM_LANGUAGE));
- wsSupport.checkCanEdit(dbSession, organization, profile);
- UserDto user = wsSupport.getUser(dbSession, organization, request.mandatoryParam(PARAM_LOGIN));
+ QProfileDto profile = wsSupport.getProfile(dbSession, request.mandatoryParam(PARAM_QUALITY_PROFILE), request.mandatoryParam(PARAM_LANGUAGE));
+ wsSupport.checkCanEdit(dbSession, profile);
+ UserDto user = wsSupport.getUser(dbSession, request.mandatoryParam(PARAM_LOGIN));
removeUser(dbSession, profile, user);
}
response.noContent();
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RenameAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RenameAction.java
index 19342e47ee2..7d249f3e81c 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RenameAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RenameAction.java
@@ -25,7 +25,6 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.user.UserSession;
@@ -33,8 +32,8 @@ import org.sonar.server.user.UserSession;
import static java.lang.String.format;
import static java.util.Optional.ofNullable;
import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
-import static org.sonar.server.qualityprofile.ws.CreateAction.NAME_MAXIMUM_LENGTH;
import static org.sonar.server.exceptions.BadRequestException.checkRequest;
+import static org.sonar.server.qualityprofile.ws.CreateAction.NAME_MAXIMUM_LENGTH;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_KEY;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_NAME;
@@ -92,15 +91,14 @@ public class RenameAction implements QProfileWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
QProfileDto qualityProfile = wsSupport.getProfile(dbSession, QProfileReference.fromKey(profileKey));
- OrganizationDto organization = wsSupport.getOrganization(dbSession, qualityProfile);
- wsSupport.checkCanEdit(dbSession, organization, qualityProfile);
+ wsSupport.checkCanEdit(dbSession, qualityProfile);
if (newName.equals(qualityProfile.getName())) {
return;
}
String language = qualityProfile.getLanguage();
- ofNullable(dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, organization, newName, language))
+ ofNullable(dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, newName, language))
.ifPresent(found -> {
throw BadRequestException.create(format("Quality profile already exists: %s", newName));
});
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RestoreAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RestoreAction.java
index f62571fdf9d..c8a0534fc4a 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RestoreAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/RestoreAction.java
@@ -40,7 +40,6 @@ import org.sonar.server.user.UserSession;
import static com.google.common.base.Preconditions.checkArgument;
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
-import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.RestoreActionParameters.PARAM_BACKUP;
public class RestoreAction implements QProfileWsAction {
@@ -73,8 +72,6 @@ public class RestoreAction implements QProfileWsAction {
.setDescription("A profile backup file in XML format, as generated by api/qualityprofiles/backup " +
"or the former api/profiles/backup.")
.setRequired(true);
-
- QProfileWsSupport.createOrganizationParam(action).setSince("6.4");
}
@Override
@@ -83,31 +80,29 @@ public class RestoreAction implements QProfileWsAction {
InputStream backup = request.paramAsInputStream(PARAM_BACKUP);
checkArgument(backup != null, "A backup file must be provided");
- String organizationKey = request.param(PARAM_ORGANIZATION);
InputStreamReader reader = null;
try (DbSession dbSession = dbClient.openSession(false)) {
reader = new InputStreamReader(backup, UTF_8);
- OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, organizationKey);
+ OrganizationDto organization = wsSupport.getDefaultOrganization(dbSession);
userSession.checkPermission(ADMINISTER_QUALITY_PROFILES, organization);
- QProfileRestoreSummary summary = backuper.restore(dbSession, reader, organization, null);
- writeResponse(response.newJsonWriter(), organization, summary);
+ QProfileRestoreSummary summary = backuper.restore(dbSession, reader, (String) null);
+ writeResponse(response.newJsonWriter(), summary);
} finally {
IOUtils.closeQuietly(reader);
IOUtils.closeQuietly(backup);
}
}
- private void writeResponse(JsonWriter json, OrganizationDto organization, QProfileRestoreSummary summary) {
+ private void writeResponse(JsonWriter json, QProfileRestoreSummary summary) {
QProfileDto profile = summary.getProfile();
String languageKey = profile.getLanguage();
Language language = languages.get(languageKey);
JsonWriter jsonProfile = json.beginObject().name("profile").beginObject();
jsonProfile
- .prop("organization", organization.getKey())
.prop("key", profile.getKee())
.prop("name", profile.getName())
.prop("language", languageKey)
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchAction.java
index f5f8c87c613..7054b4d435e 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchAction.java
@@ -41,13 +41,11 @@ import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.qualityprofile.ActiveRuleCountQuery;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.component.ComponentFinder;
-import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.language.LanguageParamUtils;
import org.sonar.server.user.UserSession;
import org.sonarqube.ws.Qualityprofiles.SearchWsResponse;
@@ -67,7 +65,6 @@ import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.ACTION_SEARCH;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_DEFAULTS;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_PROJECT;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_PROJECT_KEY;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
@@ -100,13 +97,9 @@ public class SearchAction implements QProfileWsAction {
.setChangelog(
new Change("6.5", format("The parameters '%s', '%s' and '%s' can be combined without any constraint", PARAM_DEFAULTS, PARAM_PROJECT, PARAM_LANGUAGE)),
new Change("6.6", "Add available actions 'edit', 'copy' and 'setAsDefault' and global action 'create'"),
- new Change("7.0", "Add available actions 'delete' and 'associateProjects'")
- )
+ new Change("7.0", "Add available actions 'delete' and 'associateProjects'"))
.setResponseExample(getClass().getResource("search-example.json"));
- QProfileWsSupport.createOrganizationParam(action)
- .setSince("6.4");
-
action
.createParam(PARAM_DEFAULTS)
.setDescription("If set to true, return only the quality profiles marked as default for each language")
@@ -137,7 +130,6 @@ public class SearchAction implements QProfileWsAction {
private static SearchRequest toSearchWsRequest(Request request) {
return new SearchRequest()
- .setOrganizationKey(request.param(PARAM_ORGANIZATION))
.setProjectKey(request.param(PARAM_PROJECT))
.setQualityProfile(request.param(PARAM_QUALITY_PROFILE))
.setDefaults(request.paramAsBoolean(PARAM_DEFAULTS))
@@ -145,49 +137,40 @@ public class SearchAction implements QProfileWsAction {
}
private SearchWsResponse doHandle(SearchRequest request) {
- SearchData data = load(request);
- return buildResponse(data);
- }
-
- private SearchData load(SearchRequest request) {
try (DbSession dbSession = dbClient.openSession(false)) {
-
- OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, request.getOrganizationKey());
- ProjectDto project = findProject(dbSession, organization, request);
-
- List<QProfileDto> defaultProfiles = dbClient.qualityProfileDao().selectDefaultProfiles(dbSession, organization, getLanguageKeys());
- List<String> editableProfiles = searchEditableProfiles(dbSession, organization);
- List<QProfileDto> profiles = searchProfiles(dbSession, request, organization, defaultProfiles, project);
-
- ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder().setOrganization(organization);
- return new SearchData()
- .setOrganization(organization)
- .setProfiles(profiles)
- .setActiveRuleCountByProfileKey(
- dbClient.activeRuleDao().countActiveRulesByQuery(dbSession, builder.setProfiles(profiles).build()))
- .setActiveDeprecatedRuleCountByProfileKey(
- dbClient.activeRuleDao().countActiveRulesByQuery(dbSession, builder.setProfiles(profiles).setRuleStatus(DEPRECATED).build()))
- .setProjectCountByProfileKey(dbClient.qualityProfileDao().countProjectsByOrganizationAndProfiles(dbSession, organization, profiles))
- .setDefaultProfileKeys(defaultProfiles)
- .setEditableProfileKeys(editableProfiles);
+ SearchData data = load(dbSession, request);
+ return buildResponse(dbSession, data);
}
}
+ private SearchData load(DbSession dbSession, SearchRequest request) {
+ ProjectDto project = findProject(dbSession, request);
+ List<QProfileDto> defaultProfiles = dbClient.qualityProfileDao().selectDefaultProfiles(dbSession, getLanguageKeys());
+ List<String> editableProfiles = searchEditableProfiles(dbSession);
+ List<QProfileDto> profiles = searchProfiles(dbSession, request, defaultProfiles, project);
+
+ ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder();
+ return new SearchData()
+ .setProfiles(profiles)
+ .setActiveRuleCountByProfileKey(
+ dbClient.activeRuleDao().countActiveRulesByQuery(dbSession, builder.setProfiles(profiles).build()))
+ .setActiveDeprecatedRuleCountByProfileKey(
+ dbClient.activeRuleDao().countActiveRulesByQuery(dbSession, builder.setProfiles(profiles).setRuleStatus(DEPRECATED).build()))
+ .setProjectCountByProfileKey(dbClient.qualityProfileDao().countProjectsByProfiles(dbSession, profiles))
+ .setDefaultProfileKeys(defaultProfiles)
+ .setEditableProfileKeys(editableProfiles);
+ }
+
@CheckForNull
- private ProjectDto findProject(DbSession dbSession, OrganizationDto organization, SearchRequest request) {
+ private ProjectDto findProject(DbSession dbSession, SearchRequest request) {
if (request.getProjectKey() == null) {
return null;
}
- ProjectDto project = componentFinder.getProjectByKey(dbSession, request.getProjectKey());
- if (!project.getOrganizationUuid().equals(organization.getUuid())) {
- throw new NotFoundException(format("Project '%s' not found", project.getKey()));
- }
-
- return project;
+ return componentFinder.getProjectByKey(dbSession, request.getProjectKey());
}
- private List<String> searchEditableProfiles(DbSession dbSession, OrganizationDto organization) {
+ private List<String> searchEditableProfiles(DbSession dbSession) {
if (!userSession.isLoggedIn()) {
return emptyList();
}
@@ -197,14 +180,13 @@ public class SearchAction implements QProfileWsAction {
checkState(user != null, "User with login '%s' is not found'", login);
return Stream.concat(
- dbClient.qProfileEditUsersDao().selectQProfileUuidsByOrganizationAndUser(dbSession, organization, user).stream(),
- dbClient.qProfileEditGroupsDao().selectQProfileUuidsByOrganizationAndGroups(dbSession, organization, userSession.getGroups()).stream())
+ dbClient.qProfileEditUsersDao().selectQProfileUuidsByUser(dbSession, user).stream(),
+ dbClient.qProfileEditGroupsDao().selectQProfileUuidsByGroups(dbSession, userSession.getGroups()).stream())
.collect(toList());
}
- private List<QProfileDto> searchProfiles(DbSession dbSession, SearchRequest request, OrganizationDto organization, List<QProfileDto> defaultProfiles,
- @Nullable ProjectDto project) {
- Collection<QProfileDto> profiles = selectAllProfiles(dbSession, organization);
+ private List<QProfileDto> searchProfiles(DbSession dbSession, SearchRequest request, List<QProfileDto> defaultProfiles, @Nullable ProjectDto project) {
+ Collection<QProfileDto> profiles = selectAllProfiles(dbSession);
return profiles.stream()
.filter(hasLanguagePlugin())
@@ -243,18 +225,18 @@ public class SearchAction implements QProfileWsAction {
return p -> Objects.equals(p.getKee(), effectiveProfiles.get(p.getLanguage()).getKee());
}
- private Collection<QProfileDto> selectAllProfiles(DbSession dbSession, OrganizationDto organization) {
- return dbClient.qualityProfileDao().selectOrderedByOrganizationUuid(dbSession, organization);
+ private Collection<QProfileDto> selectAllProfiles(DbSession dbSession) {
+ return dbClient.qualityProfileDao().selectAll(dbSession);
}
private Set<String> getLanguageKeys() {
return Arrays.stream(languages.all()).map(Language::getKey).collect(MoreCollectors.toSet());
}
- private SearchWsResponse buildResponse(SearchData data) {
+ private SearchWsResponse buildResponse(DbSession dbSession, SearchData data) {
List<QProfileDto> profiles = data.getProfiles();
Map<String, QProfileDto> profilesByKey = profiles.stream().collect(Collectors.toMap(QProfileDto::getKee, identity()));
- boolean isGlobalQProfileAdmin = userSession.hasPermission(ADMINISTER_QUALITY_PROFILES, data.getOrganization());
+ boolean isGlobalQProfileAdmin = userSession.hasPermission(ADMINISTER_QUALITY_PROFILES, wsSupport.getDefaultOrganization(dbSession));
SearchWsResponse.Builder response = SearchWsResponse.newBuilder();
response.setActions(SearchWsResponse.Actions.newBuilder().setCreate(isGlobalQProfileAdmin));
@@ -262,7 +244,6 @@ public class SearchAction implements QProfileWsAction {
QualityProfile.Builder profileBuilder = response.addProfilesBuilder();
String profileKey = profile.getKee();
- ofNullable(profile.getOrganizationUuid()).ifPresent(o -> profileBuilder.setOrganization(data.getOrganization().getKey()));
profileBuilder.setKey(profileKey);
ofNullable(profile.getName()).ifPresent(profileBuilder::setName);
ofNullable(profile.getRulesUpdatedAt()).ifPresent(profileBuilder::setRulesUpdatedAt);
@@ -318,21 +299,11 @@ public class SearchAction implements QProfileWsAction {
}
private static class SearchRequest {
- private String organizationKey;
private boolean defaults;
private String language;
private String qualityProfile;
private String projectKey;
- public String getOrganizationKey() {
- return organizationKey;
- }
-
- public SearchRequest setOrganizationKey(@Nullable String organizationKey) {
- this.organizationKey = organizationKey;
- return this;
- }
-
public boolean getDefaults() {
return defaults;
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchData.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchData.java
index 70278644ef4..f766cd28f13 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchData.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchData.java
@@ -24,7 +24,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.sonar.core.util.stream.MoreCollectors;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import static com.google.common.base.MoreObjects.firstNonNull;
@@ -32,7 +31,6 @@ import static com.google.common.collect.ImmutableList.copyOf;
import static com.google.common.collect.ImmutableMap.copyOf;
class SearchData {
- private OrganizationDto organization;
private List<QProfileDto> profiles;
private Map<String, Long> activeRuleCountByProfileKey;
private Map<String, Long> activeDeprecatedRuleCountByProfileKey;
@@ -40,15 +38,6 @@ class SearchData {
private Set<String> defaultProfileKeys;
private Set<String> editableProfileKeys;
- SearchData setOrganization(OrganizationDto organization) {
- this.organization = organization;
- return this;
- }
-
- OrganizationDto getOrganization() {
- return organization;
- }
-
List<QProfileDto> getProfiles() {
return profiles;
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchGroupsAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchGroupsAction.java
index 8b5c3f1164b..6b848b407d6 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchGroupsAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchGroupsAction.java
@@ -31,7 +31,6 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.GroupMembershipDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.qualityprofile.SearchGroupsQuery;
@@ -54,11 +53,9 @@ import static org.sonar.db.qualityprofile.SearchGroupsQuery.ANY;
import static org.sonar.db.qualityprofile.SearchGroupsQuery.IN;
import static org.sonar.db.qualityprofile.SearchGroupsQuery.OUT;
import static org.sonar.db.qualityprofile.SearchGroupsQuery.builder;
-import static org.sonar.server.qualityprofile.ws.QProfileWsSupport.createOrganizationParam;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.ACTION_SEARCH_GROUPS;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class SearchGroupsAction implements QProfileWsAction {
@@ -103,20 +100,16 @@ public class SearchGroupsAction implements QProfileWsAction {
.setDescription("Quality profile language")
.setRequired(true)
.setPossibleValues(Arrays.stream(languages.all()).map(Language::getKey).collect(toSet()));
-
- createOrganizationParam(action);
}
@Override
public void handle(Request request, Response response) throws Exception {
SearchUsersRequest wsRequest = buildRequest(request);
try (DbSession dbSession = dbClient.openSession(false)) {
- OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, wsRequest.getOrganization());
- QProfileDto profile = wsSupport.getProfile(dbSession, organization, wsRequest.getQualityProfile(), wsRequest.getLanguage());
- wsSupport.checkCanEdit(dbSession, organization, profile);
+ QProfileDto profile = wsSupport.getProfile(dbSession, wsRequest.getQualityProfile(), wsRequest.getLanguage());
+ wsSupport.checkCanEdit(dbSession, profile);
SearchGroupsQuery query = builder()
- .setOrganization(organization)
.setProfile(profile)
.setQuery(wsRequest.getQuery())
.setMembership(MEMBERSHIP.get(fromParam(wsRequest.getSelected())))
@@ -140,7 +133,6 @@ public class SearchGroupsAction implements QProfileWsAction {
private static SearchUsersRequest buildRequest(Request request) {
return SearchUsersRequest.builder()
- .setOrganization(request.param(PARAM_ORGANIZATION))
.setQualityProfile(request.mandatoryParam(PARAM_QUALITY_PROFILE))
.setLanguage(request.mandatoryParam(PARAM_LANGUAGE))
.setQuery(request.param(TEXT_QUERY))
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersAction.java
index 1c531af098a..a0f2bdb4083 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersAction.java
@@ -31,7 +31,6 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.SelectionMode;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.qualityprofile.SearchUsersQuery;
import org.sonar.db.qualityprofile.UserMembershipDto;
@@ -57,11 +56,9 @@ import static org.sonar.db.qualityprofile.SearchUsersQuery.ANY;
import static org.sonar.db.qualityprofile.SearchUsersQuery.IN;
import static org.sonar.db.qualityprofile.SearchUsersQuery.OUT;
import static org.sonar.db.qualityprofile.SearchUsersQuery.builder;
-import static org.sonar.server.qualityprofile.ws.QProfileWsSupport.createOrganizationParam;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.ACTION_SEARCH_USERS;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class SearchUsersAction implements QProfileWsAction {
@@ -108,20 +105,16 @@ public class SearchUsersAction implements QProfileWsAction {
.setDescription("Quality profile language")
.setRequired(true)
.setPossibleValues(Arrays.stream(languages.all()).map(Language::getKey).collect(toSet()));
-
- createOrganizationParam(action);
}
@Override
public void handle(Request request, Response response) throws Exception {
SearchUsersRequest wsRequest = buildRequest(request);
try (DbSession dbSession = dbClient.openSession(false)) {
- OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, wsRequest.getOrganization());
- QProfileDto profile = wsSupport.getProfile(dbSession, organization, wsRequest.getQualityProfile(), wsRequest.getLanguage());
- wsSupport.checkCanEdit(dbSession, organization, profile);
+ QProfileDto profile = wsSupport.getProfile(dbSession, wsRequest.getQualityProfile(), wsRequest.getLanguage());
+ wsSupport.checkCanEdit(dbSession, profile);
SearchUsersQuery query = builder()
- .setOrganization(organization)
.setProfile(profile)
.setQuery(wsRequest.getQuery())
.setMembership(MEMBERSHIP.get(fromParam(wsRequest.getSelected())))
@@ -143,7 +136,6 @@ public class SearchUsersAction implements QProfileWsAction {
private static SearchUsersRequest buildRequest(Request request) {
return SearchUsersRequest.builder()
- .setOrganization(request.param(PARAM_ORGANIZATION))
.setQualityProfile(request.mandatoryParam(PARAM_QUALITY_PROFILE))
.setLanguage(request.mandatoryParam(PARAM_LANGUAGE))
.setQuery(request.param(TEXT_QUERY))
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersRequest.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersRequest.java
index 512555ca776..364ea5552ef 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersRequest.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SearchUsersRequest.java
@@ -23,8 +23,6 @@ import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
class SearchUsersRequest {
-
- private String organization;
private String qualityProfile;
private String language;
private String selected;
@@ -33,7 +31,6 @@ class SearchUsersRequest {
private Integer pageSize;
private SearchUsersRequest(Builder builder) {
- this.organization = builder.organization;
this.qualityProfile = builder.qualityProfile;
this.language = builder.language;
this.selected = builder.selected;
@@ -42,11 +39,6 @@ class SearchUsersRequest {
this.pageSize = builder.pageSize;
}
- @CheckForNull
- public String getOrganization() {
- return organization;
- }
-
public String getQualityProfile() {
return qualityProfile;
}
@@ -77,7 +69,6 @@ class SearchUsersRequest {
}
public static class Builder {
- private String organization;
private String qualityProfile;
private String language;
private String selected;
@@ -85,11 +76,6 @@ class SearchUsersRequest {
private Integer page;
private Integer pageSize;
- public Builder setOrganization(@Nullable String organization) {
- this.organization = organization;
- return this;
- }
-
public Builder setQualityProfile(String qualityProfile) {
this.qualityProfile = qualityProfile;
return this;
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SetDefaultAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SetDefaultAction.java
index 8f48d57c5b6..a6726932aaf 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SetDefaultAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/SetDefaultAction.java
@@ -26,11 +26,11 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
+import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.DefaultQProfileDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.user.UserSession;
-import static java.lang.String.format;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.ACTION_SET_DEFAULT;
@@ -57,7 +57,6 @@ public class SetDefaultAction implements QProfileWsAction {
.setPost(true)
.setHandler(this);
- QProfileWsSupport.createOrganizationParam(setDefault).setSince("6.4");
QProfileReference.defineParams(setDefault, languages);
}
@@ -66,18 +65,13 @@ public class SetDefaultAction implements QProfileWsAction {
userSession.checkLoggedIn();
QProfileReference reference = QProfileReference.fromName(request);
try (DbSession dbSession = dbClient.openSession(false)) {
+ OrganizationDto defaultOrganization = qProfileWsSupport.getDefaultOrganization(dbSession);
QProfileDto qualityProfile = qProfileWsSupport.getProfile(dbSession, reference);
- dbClient.organizationDao().selectByUuid(dbSession, qualityProfile.getOrganizationUuid())
- .orElseThrow(() -> new IllegalStateException(
- format("Cannot find organization '%s' for quality profile '%s'", qualityProfile.getOrganizationUuid(), qualityProfile.getKee())));
- userSession.checkPermission(ADMINISTER_QUALITY_PROFILES, qualityProfile.getOrganizationUuid());
- setDefault(dbSession, qualityProfile);
+ userSession.checkPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganization);
+ dbClient.defaultQProfileDao().insertOrUpdate(dbSession, DefaultQProfileDto.from(qualityProfile));
dbSession.commit();
}
response.noContent();
}
- public void setDefault(DbSession dbSession, QProfileDto profile) {
- dbClient.defaultQProfileDao().insertOrUpdate(dbSession, DefaultQProfileDto.from(profile));
- }
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ShowAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ShowAction.java
index 930c82da66e..e2267b40993 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ShowAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ShowAction.java
@@ -32,7 +32,6 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleCountQuery;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.es.SearchOptions;
@@ -96,13 +95,12 @@ public class ShowAction implements QProfileWsAction {
public void handle(Request request, Response response) throws Exception {
try (DbSession dbSession = dbClient.openSession(false)) {
QProfileDto profile = qProfileWsSupport.getProfile(dbSession, QProfileReference.fromKey(request.mandatoryParam(PARAM_KEY)));
- OrganizationDto organization = qProfileWsSupport.getOrganization(dbSession, profile);
- boolean isDefault = dbClient.defaultQProfileDao().isDefault(dbSession, profile.getOrganizationUuid(), profile.getKee());
- ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder().setOrganization(organization);
+ boolean isDefault = dbClient.defaultQProfileDao().isDefault(dbSession, profile.getKee());
+ ActiveRuleCountQuery.Builder builder = ActiveRuleCountQuery.builder();
long activeRuleCount = countActiveRulesByQuery(dbSession, profile, builder);
long deprecatedActiveRuleCount = countActiveRulesByQuery(dbSession, profile, builder.setRuleStatus(DEPRECATED));
- long projectCount = countProjectsByOrganizationAndProfiles(dbSession, organization, profile);
- CompareToSonarWay compareToSonarWay = getSonarWay(request, dbSession, organization, profile);
+ long projectCount = countProjectsByProfiles(dbSession, profile);
+ CompareToSonarWay compareToSonarWay = getSonarWay(request, dbSession, profile);
writeProtobuf(buildResponse(profile, isDefault, getLanguage(profile), activeRuleCount, deprecatedActiveRuleCount, projectCount, compareToSonarWay), request, response);
}
}
@@ -112,8 +110,8 @@ public class ShowAction implements QProfileWsAction {
return result.getOrDefault(profile.getKee(), 0L);
}
- private long countProjectsByOrganizationAndProfiles(DbSession dbSession, OrganizationDto organization, QProfileDto profile) {
- Map<String, Long> projects = dbClient.qualityProfileDao().countProjectsByOrganizationAndProfiles(dbSession, organization, singletonList(profile));
+ private long countProjectsByProfiles(DbSession dbSession, QProfileDto profile) {
+ Map<String, Long> projects = dbClient.qualityProfileDao().countProjectsByProfiles(dbSession, singletonList(profile));
return projects.getOrDefault(profile.getKee(), 0L);
}
@@ -124,12 +122,12 @@ public class ShowAction implements QProfileWsAction {
}
@CheckForNull
- public CompareToSonarWay getSonarWay(Request request, DbSession dbSession, OrganizationDto organization, QProfileDto profile) {
+ public CompareToSonarWay getSonarWay(Request request, DbSession dbSession, QProfileDto profile) {
if (!request.mandatoryParamAsBoolean(PARAM_COMPARE_TO_SONAR_WAY) || profile.isBuiltIn()) {
return null;
}
QProfileDto sonarWay = Stream.of(SONAR_WAY, SONARQUBE_WAY)
- .map(name -> dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, organization, name, profile.getLanguage()))
+ .map(name -> dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, name, profile.getLanguage()))
.filter(Objects::nonNull)
.filter(QProfileDto::isBuiltIn)
.findFirst()
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleCreator.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleCreator.java
index 39eca8c454a..bfee79e317b 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleCreator.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleCreator.java
@@ -38,14 +38,12 @@ import org.sonar.api.utils.System2;
import org.sonar.core.util.UuidFactory;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleDto.Format;
import org.sonar.db.rule.RuleMetadataDto;
import org.sonar.db.rule.RuleParamDto;
import org.sonar.server.exceptions.BadRequestException;
-import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.rule.index.RuleIndexer;
import org.sonar.server.util.TypeValidations;
@@ -62,26 +60,20 @@ public class RuleCreator {
private final RuleIndexer ruleIndexer;
private final DbClient dbClient;
private final TypeValidations typeValidations;
- private final DefaultOrganizationProvider defaultOrganizationProvider;
private final UuidFactory uuidFactory;
- public RuleCreator(System2 system2, RuleIndexer ruleIndexer, DbClient dbClient, TypeValidations typeValidations,
- DefaultOrganizationProvider defaultOrganizationProvider, UuidFactory uuidFactory) {
+ public RuleCreator(System2 system2, RuleIndexer ruleIndexer, DbClient dbClient, TypeValidations typeValidations, UuidFactory uuidFactory) {
this.system2 = system2;
this.ruleIndexer = ruleIndexer;
this.dbClient = dbClient;
this.typeValidations = typeValidations;
- this.defaultOrganizationProvider = defaultOrganizationProvider;
this.uuidFactory = uuidFactory;
}
public RuleKey create(DbSession dbSession, NewCustomRule newRule) {
RuleKey templateKey = newRule.templateKey();
checkArgument(templateKey != null, "Rule template key should not be null");
- String defaultOrganizationUuid = defaultOrganizationProvider.get().getUuid();
- OrganizationDto defaultOrganization = dbClient.organizationDao().selectByUuid(dbSession, defaultOrganizationUuid)
- .orElseThrow(() -> new IllegalStateException(format("Could not find default organization for uuid '%s'", defaultOrganizationUuid)));
- RuleDto templateRule = dbClient.ruleDao().selectByKey(dbSession, defaultOrganization.getUuid(), templateKey)
+ RuleDto templateRule = dbClient.ruleDao().selectByKey(dbSession, templateKey)
.orElseThrow(() -> new IllegalArgumentException(format(TEMPLATE_KEY_NOT_EXIST_FORMAT, templateKey)));
checkArgument(templateRule.isTemplate(), "This rule is not a template rule: %s", templateKey.toString());
checkArgument(templateRule.getStatus() != RuleStatus.REMOVED, TEMPLATE_KEY_NOT_EXIST_FORMAT, templateKey.toString());
@@ -97,12 +89,8 @@ public class RuleCreator {
}
public List<RuleKey> create(DbSession dbSession, List<NewCustomRule> newRules) {
- String defaultOrganizationUuid = defaultOrganizationProvider.get().getUuid();
- OrganizationDto defaultOrganization = dbClient.organizationDao().selectByUuid(dbSession, defaultOrganizationUuid)
- .orElseThrow(() -> new IllegalStateException(format("Could not find default organization for uuid '%s'", defaultOrganizationUuid)));
-
Set<RuleKey> templateKeys = newRules.stream().map(NewCustomRule::templateKey).collect(Collectors.toSet());
- Map<RuleKey, RuleDto> templateRules = dbClient.ruleDao().selectByKeys(dbSession, defaultOrganization.getUuid(), templateKeys)
+ Map<RuleKey, RuleDto> templateRules = dbClient.ruleDao().selectByKeys(dbSession, templateKeys)
.stream()
.collect(Collectors.toMap(
RuleDto::getKey,
@@ -223,7 +211,6 @@ public class RuleCreator {
Set<String> tags = templateRuleDto.getTags();
if (!tags.isEmpty()) {
RuleMetadataDto ruleMetadata = new RuleMetadataDto()
- .setOrganizationUuid(defaultOrganizationProvider.get().getUuid())
.setRuleUuid(ruleDefinition.getUuid())
.setTags(tags)
.setCreatedAt(system2.now())
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleUpdate.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleUpdate.java
index cabfd2993ba..678f3cfae85 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleUpdate.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleUpdate.java
@@ -28,7 +28,6 @@ import org.apache.commons.lang.StringUtils;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rule.RuleStatus;
import org.sonar.api.server.debt.DebtRemediationFunction;
-import org.sonar.db.organization.OrganizationDto;
import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.server.rule.RuleUpdate.RuleUpdateUseCase.CUSTOM_RULE;
@@ -56,7 +55,6 @@ public class RuleUpdate {
private String severity;
private RuleStatus status;
private final Map<String, String> parameters = new HashMap<>();
- private OrganizationDto organization;
private RuleUpdate(RuleKey ruleKey, RuleUpdateUseCase useCase) {
this.ruleKey = ruleKey;
@@ -165,11 +163,6 @@ public class RuleUpdate {
return this;
}
- public RuleUpdate setOrganization(OrganizationDto organization) {
- this.organization = organization;
- return this;
- }
-
public Map<String, String> getParameters() {
return parameters;
}
@@ -227,10 +220,6 @@ public class RuleUpdate {
checkArgument(useCase == CUSTOM_RULE, "Not a custom rule");
}
- public OrganizationDto getOrganization() {
- return organization;
- }
-
/**
* Use to update a rule provided by a plugin (name, description, severity, status and parameters cannot by changed)
*/
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleUpdater.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleUpdater.java
index 5f4ef2d59be..ed3cd3c93aa 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleUpdater.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/RuleUpdater.java
@@ -39,7 +39,6 @@ import org.sonar.api.server.debt.DebtRemediationFunction;
import org.sonar.api.utils.System2;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleDto;
import org.sonar.db.qualityprofile.ActiveRuleParamDto;
import org.sonar.db.qualityprofile.OrgActiveRuleDto;
@@ -71,7 +70,7 @@ public class RuleUpdater {
/**
* Update manual rules and custom rules (rules instantiated from templates)
*/
- public boolean update(DbSession dbSession, RuleUpdate update, OrganizationDto organization, UserSession userSession) {
+ public boolean update(DbSession dbSession, RuleUpdate update, UserSession userSession) {
if (update.isEmpty()) {
return false;
}
@@ -80,8 +79,8 @@ public class RuleUpdater {
// validate only the changes, not all the rule fields
apply(update, rule, userSession);
update(dbSession, rule);
- updateParameters(dbSession, organization, update, rule);
- ruleIndexer.commitAndIndex(dbSession, rule.getUuid(), organization);
+ updateParameters(dbSession, update, rule);
+ ruleIndexer.commitAndIndex(dbSession, rule.getUuid());
return true;
}
@@ -91,7 +90,7 @@ public class RuleUpdater {
*/
private RuleDto getRuleDto(RuleUpdate change) {
try (DbSession dbSession = dbClient.openSession(false)) {
- RuleDto rule = dbClient.ruleDao().selectOrFailByKey(dbSession, change.getOrganization(), change.getRuleKey());
+ RuleDto rule = dbClient.ruleDao().selectOrFailByKey(dbSession, change.getRuleKey());
if (RuleStatus.REMOVED == rule.getStatus()) {
throw new IllegalArgumentException("Rule with REMOVED status cannot be updated: " + change.getRuleKey());
}
@@ -209,7 +208,7 @@ public class RuleUpdater {
.isEquals();
}
- private void updateParameters(DbSession dbSession, OrganizationDto organization, RuleUpdate update, RuleDto rule) {
+ private void updateParameters(DbSession dbSession, RuleUpdate update, RuleDto rule) {
if (update.isChangeParameters() && update.isCustomRule()) {
RuleDto customRule = rule;
String templateUuid = customRule.getTemplateUuid();
@@ -222,14 +221,14 @@ public class RuleUpdater {
List<String> paramKeys = newArrayList();
// Load active rules and its parameters in cache
- Multimap<ActiveRuleDto, ActiveRuleParamDto> activeRuleParamsByActiveRule = getActiveRuleParamsByActiveRule(dbSession, organization, customRule);
+ Multimap<ActiveRuleDto, ActiveRuleParamDto> activeRuleParamsByActiveRule = getActiveRuleParamsByActiveRule(dbSession, customRule);
// Browse custom rule parameters to create, update or delete them
deleteOrUpdateParameters(dbSession, update, customRule, paramKeys, activeRuleParamsByActiveRule);
}
}
- private Multimap<ActiveRuleDto, ActiveRuleParamDto> getActiveRuleParamsByActiveRule(DbSession dbSession, OrganizationDto organization, RuleDto customRule) {
- List<OrgActiveRuleDto> activeRuleDtos = dbClient.activeRuleDao().selectByRuleUuid(dbSession, organization, customRule.getUuid());
+ private Multimap<ActiveRuleDto, ActiveRuleParamDto> getActiveRuleParamsByActiveRule(DbSession dbSession, RuleDto customRule) {
+ List<OrgActiveRuleDto> activeRuleDtos = dbClient.activeRuleDao().selectByOrgRuleUuid(dbSession, customRule.getUuid());
Map<String, OrgActiveRuleDto> activeRuleByUuid = from(activeRuleDtos).uniqueIndex(ActiveRuleDto::getUuid);
List<String> activeRuleUuids = Lists.transform(activeRuleDtos, ActiveRuleDto::getUuid);
List<ActiveRuleParamDto> activeRuleParamDtos = dbClient.activeRuleDao().selectParamsByActiveRuleUuids(dbSession, activeRuleUuids);
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ActiveRuleCompleter.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ActiveRuleCompleter.java
index 993f80031b4..02a1bd980eb 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ActiveRuleCompleter.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ActiveRuleCompleter.java
@@ -41,7 +41,6 @@ import org.sonar.api.utils.DateUtils;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleDto;
import org.sonar.db.qualityprofile.ActiveRuleKey;
import org.sonar.db.qualityprofile.ActiveRuleParamDto;
@@ -100,7 +99,7 @@ public class ActiveRuleCompleter {
} else {
// Load details of all active rules
List<String> ruleUuids = Lists.transform(rules, RuleDto::getUuid);
- List<OrgActiveRuleDto> activeRules = dbClient.activeRuleDao().selectByRuleUuids(dbSession, query.getOrganization(), ruleUuids);
+ List<OrgActiveRuleDto> activeRules = dbClient.activeRuleDao().selectByRuleUuids(dbSession, ruleUuids);
Multimap<RuleKey, OrgActiveRuleDto> activeRulesByRuleKey = activeRules.stream()
.collect(MoreCollectors.index(OrgActiveRuleDto::getRuleKey));
ListMultimap<ActiveRuleKey, ActiveRuleParamDto> activeRuleParamsByActiveRuleKey = loadParams(dbSession, activeRules);
@@ -140,8 +139,8 @@ public class ActiveRuleCompleter {
return activeRuleParamsByActiveRuleKey;
}
- List<Rules.Active> completeShow(DbSession dbSession, OrganizationDto organization, RuleDefinitionDto rule) {
- List<OrgActiveRuleDto> activeRules = dbClient.activeRuleDao().selectByRuleUuid(dbSession, organization, rule.getUuid());
+ List<Rules.Active> completeShow(DbSession dbSession, RuleDefinitionDto rule) {
+ List<OrgActiveRuleDto> activeRules = dbClient.activeRuleDao().selectByOrgRuleUuid(dbSession, rule.getUuid());
Map<String, ActiveRuleKey> activeRuleUuidsByKey = new HashMap<>();
for (OrgActiveRuleDto activeRuleDto : activeRules) {
activeRuleUuidsByKey.put(activeRuleDto.getUuid(), activeRuleDto.getKey());
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/AppAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/AppAction.java
index 53cb6f63028..f2d01a6f71b 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/AppAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/AppAction.java
@@ -27,24 +27,22 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.api.utils.text.JsonWriter;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.permission.OrganizationPermission;
+import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.user.UserSession;
-import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ORGANIZATION;
-
public class AppAction implements RulesWsAction {
private final Languages languages;
private final DbClient dbClient;
private final UserSession userSession;
- private final RuleWsSupport wsSupport;
+ private final DefaultOrganizationProvider defaultOrganizationProvider;
- public AppAction(Languages languages, DbClient dbClient, UserSession userSession, RuleWsSupport wsSupport) {
+ public AppAction(Languages languages, DbClient dbClient, UserSession userSession, DefaultOrganizationProvider defaultOrganizationProvider) {
this.languages = languages;
this.dbClient = dbClient;
this.userSession = userSession;
- this.wsSupport = wsSupport;
+ this.defaultOrganizationProvider = defaultOrganizationProvider;
}
@Override
@@ -55,31 +53,22 @@ public class AppAction implements RulesWsAction {
.setSince("4.5")
.setInternal(true)
.setHandler(this);
-
- action.createParam(PARAM_ORGANIZATION)
- .setDescription("Organization key")
- .setRequired(false)
- .setInternal(true)
- .setSince("6.4")
- .setExampleValue("my-org");
}
@Override
public void handle(Request request, Response response) throws Exception {
try (DbSession dbSession = dbClient.openSession(false)) {
- OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION));
-
JsonWriter json = response.newJsonWriter();
json.beginObject();
- addPermissions(organization, json);
+ addPermissions(json);
addLanguages(json);
addRuleRepositories(json, dbSession);
json.endObject().close();
}
}
- private void addPermissions(OrganizationDto organization, JsonWriter json) {
- boolean canWrite = userSession.hasPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
+ private void addPermissions(JsonWriter json) {
+ boolean canWrite = userSession.hasPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, defaultOrganizationProvider.get().getUuid());
json.prop("canWrite", canWrite);
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleQueryFactory.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleQueryFactory.java
index f4aeccc3faa..e5fcd96b955 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleQueryFactory.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleQueryFactory.java
@@ -28,12 +28,10 @@ import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.WebService;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.rule.index.RuleQuery;
-import static com.google.common.base.Preconditions.checkArgument;
-import static java.lang.String.format;
+import static org.sonar.server.exceptions.NotFoundException.checkFound;
import static org.sonar.server.rule.ws.EnumUtils.toEnums;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_ACTIVATION;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_ACTIVE_SEVERITIES;
@@ -44,7 +42,6 @@ import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_INCLUDE_EXTERNAL;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_INHERITANCE;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_IS_TEMPLATE;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_LANGUAGES;
-import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_ORGANIZATION;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_OWASP_TOP_10;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_QPROFILE;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_REPOSITORIES;
@@ -56,18 +53,14 @@ import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_STATUSES;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_TAGS;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_TEMPLATE_KEY;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_TYPES;
-import static org.sonar.server.exceptions.NotFoundException.checkFound;
-import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
@ServerSide
public class RuleQueryFactory {
private final DbClient dbClient;
- private final RuleWsSupport wsSupport;
- public RuleQueryFactory(DbClient dbClient, RuleWsSupport wsSupport) {
+ public RuleQueryFactory(DbClient dbClient) {
this.dbClient = dbClient;
- this.wsSupport = wsSupport;
}
/**
@@ -93,15 +86,12 @@ public class RuleQueryFactory {
query.setAvailableSince(availableSince != null ? availableSince.getTime() : null);
query.setStatuses(toEnums(request.paramAsStrings(PARAM_STATUSES), RuleStatus.class));
- // Order is important : 1. Load profile, 2. Load organization either from parameter or from profile, 3. Load compare to profile
+ // Order is important : 1. Load profile, 2. Load compare to profile
setProfile(dbSession, query, request);
- setOrganization(dbSession, query, request);
setCompareToProfile(dbSession, query, request);
QProfileDto profile = query.getQProfile();
query.setLanguages(profile == null ? request.paramAsStrings(PARAM_LANGUAGES) : ImmutableList.of(profile.getLanguage()));
- if (wsSupport.areActiveRulesVisible(query.getOrganization())) {
- query.setActivation(request.paramAsBoolean(PARAM_ACTIVATION));
- }
+ query.setActivation(request.paramAsBoolean(PARAM_ACTIVATION));
query.setTags(request.paramAsStrings(PARAM_TAGS));
query.setInheritance(request.paramAsStrings(PARAM_INHERITANCE));
query.setActiveSeverities(request.paramAsStrings(PARAM_ACTIVE_SEVERITIES));
@@ -132,24 +122,6 @@ public class RuleQueryFactory {
query.setQProfile(profile);
}
- private void setOrganization(DbSession dbSession, RuleQuery query, Request request) {
- String organizationKey = request.param(PARAM_ORGANIZATION);
- QProfileDto profile = query.getQProfile();
- if (profile == null) {
- query.setOrganization(wsSupport.getOrganizationByKey(dbSession, organizationKey));
- return;
- }
- OrganizationDto organization = checkFoundWithOptional(dbClient.organizationDao().selectByUuid(dbSession, profile.getOrganizationUuid()), "No organization with UUID %s",
- profile.getOrganizationUuid());
- if (organizationKey != null) {
- OrganizationDto inputOrganization = checkFoundWithOptional(dbClient.organizationDao().selectByKey(dbSession, organizationKey), "No organization with key '%s'",
- organizationKey);
- checkArgument(organization.getUuid().equals(inputOrganization.getUuid()),
- format("The specified quality profile '%s' is not part of the specified organization '%s'", profile.getKee(), organizationKey));
- }
- query.setOrganization(organization);
- }
-
private void setCompareToProfile(DbSession dbSession, RuleQuery query, Request request) {
String compareToProfileUuid = request.param(PARAM_COMPARE_TO_PROFILE);
if (compareToProfileUuid == null) {
@@ -158,9 +130,6 @@ public class RuleQueryFactory {
QProfileDto profileOptional = dbClient.qualityProfileDao().selectByUuid(dbSession, compareToProfileUuid);
QProfileDto profile = checkFound(profileOptional, "The specified qualityProfile '%s' does not exist", compareToProfileUuid);
- checkArgument(query.getOrganization().getUuid().equals(profile.getOrganizationUuid()),
- format("The specified quality profile '%s' is not part of the specified organization '%s'", profile.getKee(), query.getOrganization().getKey()));
-
query.setCompareToQProfile(profile);
}
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleWsSupport.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleWsSupport.java
index ff67fbccd16..5303e71f94a 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleWsSupport.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleWsSupport.java
@@ -23,10 +23,8 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
-import javax.annotation.Nullable;
import org.sonar.api.rule.RuleStatus;
import org.sonar.api.rule.Severity;
import org.sonar.api.rules.RuleType;
@@ -34,7 +32,6 @@ import org.sonar.api.server.ServerSide;
import org.sonar.api.server.ws.WebService;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.organization.DefaultOrganizationProvider;
@@ -51,9 +48,7 @@ import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
import static org.sonar.core.util.Uuids.UUID_EXAMPLE_02;
import static org.sonar.core.util.stream.MoreCollectors.toSet;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
-import static org.sonar.server.exceptions.NotFoundException.checkFoundWithOptional;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_ACTIVATION;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_ACTIVE_SEVERITIES;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_AVAILABLE_SINCE;
@@ -63,7 +58,6 @@ import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_INCLUDE_EXTERNAL;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_INHERITANCE;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_IS_TEMPLATE;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_LANGUAGES;
-import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_ORGANIZATION;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_OWASP_TOP_10;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_QPROFILE;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_REPOSITORIES;
@@ -95,26 +89,11 @@ public class RuleWsSupport {
.checkPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganizationProvider.get().getUuid());
}
- public OrganizationDto getOrganizationByKey(DbSession dbSession, @Nullable String organizationKey) {
- String organizationOrDefaultKey = Optional.ofNullable(organizationKey)
- .orElseGet(defaultOrganizationProvider.get()::getKey);
- return checkFoundWithOptional(
- dbClient.organizationDao().selectByKey(dbSession, organizationOrDefaultKey),
- "No organization with key '%s'", organizationOrDefaultKey);
- }
-
Map<String, UserDto> getUsersByUuid(DbSession dbSession, List<RuleDto> rules) {
Set<String> userUuids = rules.stream().map(RuleDto::getNoteUserUuid).filter(Objects::nonNull).collect(toSet());
return dbClient.userDao().selectByUuids(dbSession, userUuids).stream().collect(uniqueIndex(UserDto::getUuid));
}
- boolean areActiveRulesVisible(OrganizationDto organization) {
- if (!organization.getSubscription().equals(PAID)) {
- return true;
- }
- return userSession.hasMembership(organization);
- }
-
public static void defineGenericRuleSearchParameters(WebService.NewAction action) {
action
.createParam(TEXT_QUERY)
@@ -244,13 +223,6 @@ public class RuleWsSupport {
.setDescription("Ascending sort")
.setBooleanPossibleValues()
.setDefaultValue(true);
-
- action.createParam(PARAM_ORGANIZATION)
- .setDescription("Organization key")
- .setRequired(false)
- .setInternal(true)
- .setExampleValue("my-org")
- .setSince("6.4");
}
static void defineIsExternalParam(WebService.NewAction action) {
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java
index cca26501e20..624e29c78eb 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java
@@ -236,7 +236,7 @@ public class SearchAction implements RulesWsAction {
private SearchResult doSearch(DbSession dbSession, RuleQuery query, SearchOptions context) {
SearchIdResult<String> result = ruleIndex.search(query, context);
- List<RuleDto> rules = dbClient.ruleDao().selectByUuids(dbSession, query.getOrganization().getUuid(), result.getUuids());
+ List<RuleDto> rules = dbClient.ruleDao().selectByUuids(dbSession, result.getUuids());
List<String> ruleUuids = rules.stream().map(RuleDto::getUuid).collect(Collectors.toList());
List<String> templateRuleUuids = rules.stream()
.map(RuleDto::getTemplateUuid)
@@ -255,7 +255,7 @@ public class SearchAction implements RulesWsAction {
private void doContextResponse(DbSession dbSession, SearchRequest request, SearchResult result, SearchResponse.Builder response, RuleQuery query) {
SearchOptions contextForResponse = loadCommonContext(request);
writeRules(dbSession, response, result, contextForResponse);
- if (contextForResponse.getFields().contains("actives") && ruleWsSupport.areActiveRulesVisible(query.getOrganization())) {
+ if (contextForResponse.getFields().contains("actives")) {
activeRuleCompleter.completeSearch(dbSession, query, result.rules, response);
}
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ShowAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ShowAction.java
index 731ce4b4810..6ea78b91675 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ShowAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ShowAction.java
@@ -28,13 +28,13 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleParamDto;
import org.sonar.server.exceptions.NotFoundException;
import org.sonarqube.ws.Rules.ShowResponse;
+import static java.lang.String.format;
import static java.util.Collections.singletonList;
import static java.util.Optional.ofNullable;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
@@ -90,29 +90,21 @@ public class ShowAction implements RulesWsAction {
.setDescription("Show rule's activations for all profiles (\"active rules\")")
.setBooleanPossibleValues()
.setDefaultValue(false);
-
- action.createParam(PARAM_ORGANIZATION)
- .setDescription("Organization key")
- .setRequired(false)
- .setInternal(true)
- .setExampleValue("my-org")
- .setSince("6.4");
}
@Override
public void handle(Request request, Response response) throws Exception {
RuleKey key = RuleKey.parse(request.mandatoryParam(PARAM_KEY));
try (DbSession dbSession = dbClient.openSession(false)) {
- OrganizationDto organization = ruleWsSupport.getOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION));
- RuleDto rule = dbClient.ruleDao().selectByKey(dbSession, organization.getUuid(), key)
- .orElseThrow(() -> new NotFoundException(String.format("Rule not found: %s", key)));
+ RuleDto rule = dbClient.ruleDao().selectByKey(dbSession, key)
+ .orElseThrow(() -> new NotFoundException(format("Rule not found: %s", key)));
List<RuleDefinitionDto> templateRules = ofNullable(rule.getTemplateUuid())
.flatMap(templateUuid -> dbClient.ruleDao().selectDefinitionByUuid(rule.getTemplateUuid(), dbSession))
.map(Collections::singletonList).orElseGet(Collections::emptyList);
List<RuleParamDto> ruleParameters = dbClient.ruleDao().selectRuleParamsByRuleUuids(dbSession, singletonList(rule.getUuid()));
- ShowResponse showResponse = buildResponse(dbSession, organization, request,
+ ShowResponse showResponse = buildResponse(dbSession, request,
new SearchAction.SearchResult()
.setRules(singletonList(rule))
.setTemplateRules(templateRules)
@@ -122,13 +114,13 @@ public class ShowAction implements RulesWsAction {
}
}
- private ShowResponse buildResponse(DbSession dbSession, OrganizationDto organization, Request request, SearchAction.SearchResult searchResult) {
+ private ShowResponse buildResponse(DbSession dbSession, Request request, SearchAction.SearchResult searchResult) {
ShowResponse.Builder responseBuilder = ShowResponse.newBuilder();
RuleDto rule = searchResult.getRules().get(0);
responseBuilder.setRule(mapper.toWsRule(rule.getDefinition(), searchResult, Collections.emptySet(), rule.getMetadata(),
ruleWsSupport.getUsersByUuid(dbSession, searchResult.getRules())));
- if (request.mandatoryParamAsBoolean(PARAM_ACTIVES) && ruleWsSupport.areActiveRulesVisible(organization)) {
- activeRuleCompleter.completeShow(dbSession, organization, rule.getDefinition()).forEach(responseBuilder::addActives);
+ if (request.mandatoryParamAsBoolean(PARAM_ACTIVES)) {
+ activeRuleCompleter.completeShow(dbSession, rule.getDefinition()).forEach(responseBuilder::addActives);
}
return responseBuilder.build();
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/TagsAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/TagsAction.java
index a3a64511246..b9f1746e49c 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/TagsAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/TagsAction.java
@@ -21,33 +21,20 @@ package org.sonar.server.rule.ws;
import com.google.common.io.Resources;
import java.util.List;
-import java.util.Optional;
-import javax.annotation.Nullable;
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.text.JsonWriter;
-import org.sonar.db.DbClient;
-import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
-import org.sonar.server.exceptions.NotFoundException;
-import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.rule.index.RuleIndex;
-import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ORGANIZATION;
-
public class TagsAction implements RulesWsAction {
private final RuleIndex ruleIndex;
- private final DbClient dbClient;
- private final DefaultOrganizationProvider defaultOrganizationProvider;
- public TagsAction(RuleIndex ruleIndex, DbClient dbClient, DefaultOrganizationProvider defaultOrganizationProvider) {
+ public TagsAction(RuleIndex ruleIndex) {
this.ruleIndex = ruleIndex;
- this.dbClient = dbClient;
- this.defaultOrganizationProvider = defaultOrganizationProvider;
}
@Override
@@ -61,36 +48,17 @@ public class TagsAction implements RulesWsAction {
action.createSearchQuery("misra", "tags");
action.createPageSize(10, 100);
-
- action.createParam(PARAM_ORGANIZATION)
- .setDescription("Organization key")
- .setRequired(false)
- .setInternal(true)
- .setExampleValue("my-org")
- .setSince("6.4");
}
@Override
public void handle(Request request, Response response) {
- OrganizationDto organization = getOrganization(request.param(PARAM_ORGANIZATION));
String query = request.param(Param.TEXT_QUERY);
int pageSize = request.mandatoryParamAsInt("ps");
- List<String> tags = ruleIndex.listTags(organization, query, pageSize == 0 ? Integer.MAX_VALUE : pageSize);
-
+ List<String> tags = ruleIndex.listTags(query, pageSize == 0 ? Integer.MAX_VALUE : pageSize);
writeResponse(response, tags);
}
- private OrganizationDto getOrganization(@Nullable String organizationKey) {
- try (DbSession dbSession = dbClient.openSession(false)) {
- String organizationOrDefaultKey = Optional.ofNullable(organizationKey)
- .orElseGet(defaultOrganizationProvider.get()::getKey);
- return NotFoundException.checkFoundWithOptional(
- dbClient.organizationDao().selectByKey(dbSession, organizationOrDefaultKey),
- "No organization with key '%s'", organizationOrDefaultKey);
- }
- }
-
private static void writeResponse(Response response, List<String> tags) {
try (JsonWriter json = response.newJsonWriter()) {
json.beginObject().name("tags").beginArray();
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/UpdateAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/UpdateAction.java
index 8278393a945..2e75b497f73 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/UpdateAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/UpdateAction.java
@@ -36,7 +36,6 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.api.utils.KeyValueFormat;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleParamDto;
@@ -50,7 +49,6 @@ import static com.google.common.collect.Sets.newHashSet;
import static java.lang.String.format;
import static java.util.Collections.singletonList;
import static java.util.Optional.ofNullable;
-import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonar.server.rule.ws.CreateAction.KEY_MAXIMUM_LENGTH;
import static org.sonar.server.rule.ws.CreateAction.NAME_MAXIMUM_LENGTH;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
@@ -67,7 +65,6 @@ public class UpdateAction implements RulesWsAction {
public static final String PARAM_DESCRIPTION = "markdown_description";
public static final String PARAM_SEVERITY = "severity";
public static final String PARAM_STATUS = "status";
- public static final String PARAM_ORGANIZATION = "organization";
public static final String PARAMS = "params";
private final DbClient dbClient;
@@ -151,13 +148,6 @@ public class UpdateAction implements RulesWsAction {
.setPossibleValues(RuleStatus.values())
.setDescription("Rule status (Only when updating a custom rule)");
- action.createParam(PARAM_ORGANIZATION)
- .setRequired(false)
- .setInternal(true)
- .setDescription("Organization key")
- .setExampleValue("my-org")
- .setSince("6.4");
-
action.createParam(PARAMS)
.setDescription("Parameters as semi-colon list of <key>=<value>, for example 'params=key1=v1;key2=v2' (Only when updating a custom rule)");
}
@@ -166,19 +156,18 @@ public class UpdateAction implements RulesWsAction {
public void handle(Request request, Response response) throws Exception {
userSession.checkLoggedIn();
try (DbSession dbSession = dbClient.openSession(false)) {
- OrganizationDto organization = ruleWsSupport.getOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION));
- userSession.checkPermission(ADMINISTER_QUALITY_PROFILES, organization);
- RuleUpdate update = readRequest(dbSession, request, organization);
- ruleUpdater.update(dbSession, update, organization, userSession);
- UpdateResponse updateResponse = buildResponse(dbSession, update.getRuleKey(), organization);
+ ruleWsSupport.checkQProfileAdminPermissionOnDefaultOrganization();
+ RuleUpdate update = readRequest(dbSession, request);
+ ruleUpdater.update(dbSession, update, userSession);
+ UpdateResponse updateResponse = buildResponse(dbSession, update.getRuleKey());
writeProtobuf(updateResponse, request, response);
}
}
- private RuleUpdate readRequest(DbSession dbSession, Request request, OrganizationDto organization) {
+ private RuleUpdate readRequest(DbSession dbSession, Request request) {
RuleKey key = RuleKey.parse(request.mandatoryParam(PARAM_KEY));
- RuleUpdate update = createRuleUpdate(dbSession, key, organization);
+ RuleUpdate update = createRuleUpdate(dbSession, key);
readTags(request, update);
readMarkdownNote(request, update);
readDebt(request, update);
@@ -206,13 +195,12 @@ public class UpdateAction implements RulesWsAction {
return update;
}
- private RuleUpdate createRuleUpdate(DbSession dbSession, RuleKey key, OrganizationDto organization) {
- RuleDto rule = dbClient.ruleDao().selectByKey(dbSession, organization.getUuid(), key)
+ private RuleUpdate createRuleUpdate(DbSession dbSession, RuleKey key) {
+ RuleDto rule = dbClient.ruleDao().selectByKey(dbSession, key)
.orElseThrow(() -> new NotFoundException(format("This rule does not exist: %s", key)));
RuleUpdate ruleUpdate = ofNullable(rule.getTemplateUuid())
.map(x -> RuleUpdate.createForCustomRule(key))
.orElseGet(() -> RuleUpdate.createForPluginRule(key));
- ruleUpdate.setOrganization(organization);
return ruleUpdate;
}
@@ -251,8 +239,8 @@ public class UpdateAction implements RulesWsAction {
}
}
- private UpdateResponse buildResponse(DbSession dbSession, RuleKey key, OrganizationDto organization) {
- RuleDto rule = dbClient.ruleDao().selectByKey(dbSession, organization.getUuid(), key)
+ private UpdateResponse buildResponse(DbSession dbSession, RuleKey key) {
+ RuleDto rule = dbClient.ruleDao().selectByKey(dbSession, key)
.orElseThrow(() -> new NotFoundException(format("Rule not found: %s", key)));
List<RuleDefinitionDto> templateRules = new ArrayList<>(1);
if (rule.getDefinition().isCustomRule()) {
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/pr/ws/ListActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/pr/ws/ListActionTest.java
index 4d123a46de4..b8bed1b7044 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/pr/ws/ListActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/pr/ws/ListActionTest.java
@@ -55,7 +55,6 @@ import org.sonarqube.ws.ProjectPullRequests.ListWsResponse;
import org.sonarqube.ws.ProjectPullRequests.PullRequest;
import static java.lang.String.format;
-import static java.util.Collections.emptySet;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;
import static org.sonar.api.issue.Issue.RESOLUTION_FALSE_POSITIVE;
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/ListActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/ListActionTest.java
index 33c45ca1e61..b630da11b5b 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/ListActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/branch/ws/ListActionTest.java
@@ -47,7 +47,6 @@ import org.sonarqube.ws.ProjectBranches.Branch;
import org.sonarqube.ws.ProjectBranches.ListWsResponse;
import static java.lang.String.format;
-import static java.util.Collections.emptySet;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;
import static org.sonar.api.measures.CoreMetrics.ALERT_STATUS_KEY;
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java
index 4b61f8968f5..a8faae732fc 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java
@@ -29,8 +29,6 @@ import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.System2;
-import org.sonar.api.utils.log.LogTester;
-import org.sonar.api.utils.log.LoggerLevel;
import org.sonar.api.web.UserRole;
import org.sonar.ce.task.taskprocessor.CeTaskProcessor;
import org.sonar.core.util.Uuids;
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/WebIssueStorageTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/WebIssueStorageTest.java
index 60b54d7aec1..3882011f0ef 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/WebIssueStorageTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/WebIssueStorageTest.java
@@ -60,10 +60,8 @@ public class WebIssueStorageTest {
private DbClient dbClient = db.getDbClient();
- private TestDefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
-
private IssueIndexer issueIndexer = mock(IssueIndexer.class);
- private WebIssueStorage underTest = new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(db.getDbClient(), defaultOrganizationProvider), issueIndexer,
+ private WebIssueStorage underTest = new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(db.getDbClient()), issueIndexer,
new SequenceUuidFactory());
@Test
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/AddCommentActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/AddCommentActionTest.java
index 2a13b1572e3..82401c7c01f 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/AddCommentActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/AddCommentActionTest.java
@@ -90,12 +90,11 @@ public class AddCommentActionTest {
private System2 system2 = mock(System2.class);
private DbClient dbClient = dbTester.getDbClient();
- private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(dbTester);
private IssueDbTester issueDbTester = new IssueDbTester(dbTester);
private IssueIndexer issueIndexer = new IssueIndexer(es.client(), dbClient, new IssueIteratorFactory(dbClient), null);
- private WebIssueStorage serverIssueStorage = new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer,
+ private WebIssueStorage serverIssueStorage = new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient), issueIndexer,
new SequenceUuidFactory());
private TestIssueChangePostProcessor issueChangePostProcessor = new TestIssueChangePostProcessor();
private IssueUpdater issueUpdater = new IssueUpdater(dbClient, serverIssueStorage, mock(NotificationManager.class), issueChangePostProcessor,
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java
index 15d0099fbc0..21e4c55f65f 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java
@@ -85,14 +85,13 @@ public class AssignActionTest {
private DbSession session = db.getSession();
private NotificationManager notificationManager = mock(NotificationManager.class);
- private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
private IssueIndexer issueIndexer = new IssueIndexer(es.client(), dbClient, new IssueIteratorFactory(dbClient), null);
private OperationResponseWriter responseWriter = mock(OperationResponseWriter.class);
private TestIssueChangePostProcessor issueChangePostProcessor = new TestIssueChangePostProcessor();
private IssuesChangesNotificationSerializer issuesChangesSerializer = new IssuesChangesNotificationSerializer();
private AssignAction underTest = new AssignAction(system2, userSession, dbClient, new IssueFinder(dbClient, userSession), new IssueFieldsSetter(),
new IssueUpdater(dbClient,
- new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()),
+ new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient), issueIndexer, new SequenceUuidFactory()),
notificationManager, issueChangePostProcessor, issuesChangesSerializer),
responseWriter);
private WsActionTester ws = new WsActionTester(underTest);
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/BulkChangeActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/BulkChangeActionTest.java
index 6517d62db71..12ad5307efb 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/BulkChangeActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/BulkChangeActionTest.java
@@ -119,7 +119,7 @@ public class BulkChangeActionTest {
private IssueFieldsSetter issueFieldsSetter = new IssueFieldsSetter();
private IssueWorkflow issueWorkflow = new IssueWorkflow(new FunctionExecutor(issueFieldsSetter), issueFieldsSetter);
private WebIssueStorage issueStorage = new WebIssueStorage(system2, dbClient,
- new DefaultRuleFinder(dbClient, TestDefaultOrganizationProvider.from(db)),
+ new DefaultRuleFinder(dbClient),
new IssueIndexer(es.client(), dbClient, new IssueIteratorFactory(dbClient), null), new SequenceUuidFactory());
private NotificationManager notificationManager = mock(NotificationManager.class);
private TestIssueChangePostProcessor issueChangePostProcessor = new TestIssueChangePostProcessor();
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/DoTransitionActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/DoTransitionActionTest.java
index 0cb1839f63d..6c8b5e83b7a 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/DoTransitionActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/DoTransitionActionTest.java
@@ -92,7 +92,6 @@ public class DoTransitionActionTest {
public UserSessionRule userSession = UserSessionRule.standalone();
private DbClient dbClient = db.getDbClient();
- private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
private IssueFieldsSetter updater = new IssueFieldsSetter();
private IssueWorkflow workflow = new IssueWorkflow(new FunctionExecutor(updater), updater);
@@ -102,7 +101,7 @@ public class DoTransitionActionTest {
private TestIssueChangePostProcessor issueChangePostProcessor = new TestIssueChangePostProcessor();
private IssuesChangesNotificationSerializer issuesChangesSerializer = new IssuesChangesNotificationSerializer();
private IssueUpdater issueUpdater = new IssueUpdater(dbClient,
- new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()),
+ new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient), issueIndexer, new SequenceUuidFactory()),
mock(NotificationManager.class), issueChangePostProcessor, issuesChangesSerializer);
private ArgumentCaptor<SearchResponseData> preloadedSearchResponseDataCaptor = ArgumentCaptor.forClass(SearchResponseData.class);
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/IssueUpdaterTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/IssueUpdaterTest.java
index 3b7a1b32384..3fb4f2dd57f 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/IssueUpdaterTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/IssueUpdaterTest.java
@@ -80,7 +80,6 @@ public class IssueUpdaterTest {
public EsTester es = EsTester.create();
private DbClient dbClient = db.getDbClient();
- private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
private IssueFieldsSetter issueFieldsSetter = new IssueFieldsSetter();
private NotificationManager notificationManager = mock(NotificationManager.class);
@@ -90,7 +89,7 @@ public class IssueUpdaterTest {
private TestIssueChangePostProcessor issueChangePostProcessor = new TestIssueChangePostProcessor();
private IssuesChangesNotificationSerializer issuesChangesSerializer = new IssuesChangesNotificationSerializer();
private IssueUpdater underTest = new IssueUpdater(dbClient,
- new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()), notificationManager,
+ new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient), issueIndexer, new SequenceUuidFactory()), notificationManager,
issueChangePostProcessor, issuesChangesSerializer);
@Test
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetSeverityActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetSeverityActionTest.java
index bfea798a895..ed97ae7ae08 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetSeverityActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetSeverityActionTest.java
@@ -84,7 +84,6 @@ public class SetSeverityActionTest {
private System2 system2 = mock(System2.class);
private DbClient dbClient = dbTester.getDbClient();
- private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(dbTester);
private IssueDbTester issueDbTester = new IssueDbTester(dbTester);
private OperationResponseWriter responseWriter = mock(OperationResponseWriter.class);
private ArgumentCaptor<SearchResponseData> preloadedSearchResponseDataCaptor = ArgumentCaptor.forClass(SearchResponseData.class);
@@ -94,7 +93,7 @@ public class SetSeverityActionTest {
private IssuesChangesNotificationSerializer issuesChangesSerializer = new IssuesChangesNotificationSerializer();
private WsActionTester tester = new WsActionTester(new SetSeverityAction(userSession, dbClient, new IssueFinder(dbClient, userSession), new IssueFieldsSetter(),
new IssueUpdater(dbClient,
- new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()),
+ new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient), issueIndexer, new SequenceUuidFactory()),
mock(NotificationManager.class), issueChangePostProcessor, issuesChangesSerializer),
responseWriter));
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetTagsActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetTagsActionTest.java
index 0b4248eb5e7..a635cb52e93 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetTagsActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetTagsActionTest.java
@@ -86,7 +86,6 @@ public class SetTagsActionTest {
private System2 system2 = mock(System2.class);
private DbClient dbClient = db.getDbClient();
- private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
private OperationResponseWriter responseWriter = mock(OperationResponseWriter.class);
private IssueIndexer issueIndexer = new IssueIndexer(es.client(), dbClient, new IssueIteratorFactory(dbClient), null);
private ArgumentCaptor<SearchResponseData> preloadedSearchResponseDataCaptor = ArgumentCaptor.forClass(SearchResponseData.class);
@@ -95,7 +94,7 @@ public class SetTagsActionTest {
private WsActionTester ws = new WsActionTester(new SetTagsAction(userSession, dbClient, new IssueFinder(dbClient, userSession), new IssueFieldsSetter(),
new IssueUpdater(dbClient,
- new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()),
+ new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient), issueIndexer, new SequenceUuidFactory()),
mock(NotificationManager.class), issueChangePostProcessor, issuesChangesSerializer), responseWriter));
@Test
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetTypeActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetTypeActionTest.java
index 0831387d7f5..68d6beeb565 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetTypeActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/issue/ws/SetTypeActionTest.java
@@ -98,7 +98,6 @@ public class SetTypeActionTest {
private DbClient dbClient = dbTester.getDbClient();
private IssueDbTester issueDbTester = new IssueDbTester(dbTester);
- private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(dbTester);
private OperationResponseWriter responseWriter = mock(OperationResponseWriter.class);
private ArgumentCaptor<SearchResponseData> preloadedSearchResponseDataCaptor = ArgumentCaptor.forClass(SearchResponseData.class);
@@ -107,7 +106,7 @@ public class SetTypeActionTest {
private IssuesChangesNotificationSerializer issuesChangesSerializer = new IssuesChangesNotificationSerializer();
private WsActionTester tester = new WsActionTester(new SetTypeAction(userSession, dbClient, new IssueFinder(dbClient, userSession), new IssueFieldsSetter(),
new IssueUpdater(dbClient,
- new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()),
+ new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient), issueIndexer, new SequenceUuidFactory()),
mock(NotificationManager.class), issueChangePostProcessor, issuesChangesSerializer), responseWriter, system2));
@Test
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/organization/ws/DeleteActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/organization/ws/DeleteActionTest.java
index 92ea98c3a9f..bbf183aab1a 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/organization/ws/DeleteActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/organization/ws/DeleteActionTest.java
@@ -45,7 +45,6 @@ import org.sonar.db.permission.template.PermissionTemplateDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.qualitygate.QGateWithOrgDto;
import org.sonar.db.qualitygate.QualityGateDto;
-import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.UserDto;
import org.sonar.db.webhook.WebhookDto;
@@ -163,7 +162,7 @@ public class DeleteActionTest {
.setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
- UserDto userReloaded = dbClient.userDao().selectByUuid(dbSession, user.getUuid());
+ UserDto userReloaded = dbClient.userDao().selectByUuid(dbSession, user.getUuid());
assertThat(userReloaded.getHomepageType()).isNull();
assertThat(userReloaded.getHomepageParameter()).isNull();
}
@@ -182,7 +181,7 @@ public class DeleteActionTest {
.setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
- UserDto userReloaded = dbClient.userDao().selectByUuid(dbSession, user.getUuid());
+ UserDto userReloaded = dbClient.userDao().selectByUuid(dbSession, user.getUuid());
assertThat(userReloaded.getHomepageType()).isNull();
assertThat(userReloaded.getHomepageParameter()).isNull();
verify(projectLifeCycleListeners).onProjectsDeleted(ImmutableSet.of(Project.from(project)));
@@ -447,23 +446,6 @@ public class DeleteActionTest {
}
@Test
- public void delete_quality_profiles_of_specified_organization() {
- OrganizationDto org = db.organizations().insert();
- OrganizationDto otherOrg = db.organizations().insert();
- QProfileDto profileInOrg = db.qualityProfiles().insert(org);
- QProfileDto profileInOtherOrg = db.qualityProfiles().insert(otherOrg);
-
- logInAsAdministrator(org);
-
- sendRequest(org);
-
- verifyOrganizationDoesNotExist(org);
- assertThat(db.select("select uuid as \"profileKey\" from org_qprofiles"))
- .extracting(row -> (String) row.get("profileKey"))
- .containsOnly(profileInOtherOrg.getKee());
- }
-
- @Test
public void delete_quality_gates() {
QualityGateDto builtInQualityGate = db.qualityGates().insertBuiltInQualityGate();
OrganizationDto organization = db.organizations().insert();
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/organization/ws/OrganizationDeleterTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/organization/ws/OrganizationDeleterTest.java
index ba75c70ec75..84cbd808736 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/organization/ws/OrganizationDeleterTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/organization/ws/OrganizationDeleterTest.java
@@ -48,7 +48,6 @@ import org.sonar.db.permission.template.PermissionTemplateDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.qualitygate.QGateWithOrgDto;
import org.sonar.db.qualitygate.QualityGateDto;
-import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.UserDto;
import org.sonar.db.webhook.WebhookDto;
@@ -104,9 +103,7 @@ public class OrganizationDeleterTest {
private final BillingValidationsProxy billingValidations = mock(BillingValidationsProxy.class);
private final OrganizationDeleter underTest = new OrganizationDeleter(dbClient, componentCleanerService, userIndexer,
- new QProfileFactoryImpl(dbClient, UuidFactoryFast.getInstance(), new System2(), new ActiveRuleIndexer(dbClient, esClient)),
- projectLifeCycleListeners,
- billingValidations);
+ new QProfileFactoryImpl(dbClient, UuidFactoryFast.getInstance(), new System2(), new ActiveRuleIndexer(dbClient, esClient)), projectLifeCycleListeners, billingValidations);
@Test
public void delete_specified_organization() {
@@ -278,21 +275,6 @@ public class OrganizationDeleterTest {
}
@Test
- public void delete_quality_profiles() {
- OrganizationDto org = db.organizations().insert();
- OrganizationDto otherOrg = db.organizations().insert();
- QProfileDto profileInOrg = db.qualityProfiles().insert(org);
- QProfileDto profileInOtherOrg = db.qualityProfiles().insert(otherOrg);
-
- underTest.delete(dbSession, org);
-
- verifyOrganizationDoesNotExist(org);
- assertThat(db.select("select uuid as \"profileKey\" from org_qprofiles"))
- .extracting(row -> (String) row.get("profileKey"))
- .containsOnly(profileInOtherOrg.getKee());
- }
-
- @Test
public void delete_quality_gates() {
QualityGateDto builtInQualityGate = db.qualityGates().insertBuiltInQualityGate();
OrganizationDto organization = db.organizations().insert();
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileBackuperImplTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileBackuperImplTest.java
index 3dfb2835c2a..da9b72c4f17 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileBackuperImplTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileBackuperImplTest.java
@@ -176,10 +176,9 @@ public class QProfileBackuperImplTest {
@Test
public void restore_backup_on_the_profile_specified_in_backup() {
- OrganizationDto organization = db.organizations().insert();
Reader backup = new StringReader(EMPTY_BACKUP);
- QProfileRestoreSummary summary = underTest.restore(db.getSession(), backup, organization, null);
+ QProfileRestoreSummary summary = underTest.restore(db.getSession(), backup, (String) null);
assertThat(summary.getProfile().getName()).isEqualTo("foo");
assertThat(summary.getProfile().getLanguage()).isEqualTo("js");
@@ -190,10 +189,9 @@ public class QProfileBackuperImplTest {
@Test
public void restore_backup_on_profile_having_different_name() {
- OrganizationDto organization = db.organizations().insert();
Reader backup = new StringReader(EMPTY_BACKUP);
- QProfileRestoreSummary summary = underTest.restore(db.getSession(), backup, organization, "bar");
+ QProfileRestoreSummary summary = underTest.restore(db.getSession(), backup, "bar");
assertThat(summary.getProfile().getName()).isEqualTo("bar");
assertThat(summary.getProfile().getLanguage()).isEqualTo("js");
@@ -205,7 +203,6 @@ public class QProfileBackuperImplTest {
@Test
public void restore_resets_the_activated_rules() {
String ruleUuid = db.rules().insert(RuleKey.of("sonarjs", "s001")).getUuid();
- OrganizationDto organization = db.organizations().insert();
Reader backup = new StringReader("<?xml version='1.0' encoding='UTF-8'?>" +
"<profile><name>foo</name>" +
"<language>js</language>" +
@@ -221,7 +218,7 @@ public class QProfileBackuperImplTest {
"</rules>" +
"</profile>");
- underTest.restore(db.getSession(), backup, organization, null);
+ underTest.restore(db.getSession(), backup, (String) null);
assertThat(reset.calledActivations).hasSize(1);
RuleActivation activation = reset.calledActivations.get(0);
@@ -234,7 +231,6 @@ public class QProfileBackuperImplTest {
public void restore_custom_rule() {
when(ruleCreator.create(any(), anyList())).then(invocation -> Collections.singletonList(db.rules().insert(RuleKey.of("sonarjs", "s001")).getKey()));
- OrganizationDto organization = db.organizations().insert();
Reader backup = new StringReader("<?xml version='1.0' encoding='UTF-8'?>" +
"<profile>" +
"<name>custom rule</name>" +
@@ -254,7 +250,7 @@ public class QProfileBackuperImplTest {
"</parameters>" +
"</rule></rules></profile>");
- underTest.restore(db.getSession(), backup, organization, null);
+ underTest.restore(db.getSession(), backup, (String) null);
assertThat(reset.calledActivations).hasSize(1);
RuleActivation activation = reset.calledActivations.get(0);
@@ -265,7 +261,6 @@ public class QProfileBackuperImplTest {
@Test
public void restore_skips_rule_without_template_key_and_db_definition() {
String ruleUuid = db.rules().insert(RuleKey.of("sonarjs", "s001")).getUuid();
- OrganizationDto organization = db.organizations().insert();
Reader backup = new StringReader("<?xml version='1.0' encoding='UTF-8'?>" +
"<profile><name>foo</name>" +
"<language>js</language>" +
@@ -286,7 +281,7 @@ public class QProfileBackuperImplTest {
"</rules>" +
"</profile>");
- underTest.restore(db.getSession(), backup, organization, null);
+ underTest.restore(db.getSession(), backup, (String) null);
assertThat(reset.calledActivations).hasSize(1);
RuleActivation activation = reset.calledActivations.get(0);
@@ -312,9 +307,8 @@ public class QProfileBackuperImplTest {
@Test
public void fail_to_restore_if_bad_xml_format() {
- OrganizationDto organization = db.organizations().insert();
try {
- underTest.restore(db.getSession(), new StringReader("<rules><rule></rules>"), organization, null);
+ underTest.restore(db.getSession(), new StringReader("<rules><rule></rules>"), (String) null);
fail();
} catch (IllegalArgumentException e) {
assertThat(e).hasMessage("Backup XML is not valid. Root element must be <profile>.");
@@ -324,9 +318,8 @@ public class QProfileBackuperImplTest {
@Test
public void fail_to_restore_if_not_xml_backup() {
- OrganizationDto organization = db.organizations().insert();
try {
- underTest.restore(db.getSession(), new StringReader("foo"), organization, null);
+ underTest.restore(db.getSession(), new StringReader("foo"), (String) null);
fail();
} catch (IllegalArgumentException e) {
assertThat(reset.calledProfile).isNull();
@@ -337,18 +330,16 @@ public class QProfileBackuperImplTest {
public void fail_to_restore_if_xml_is_not_well_formed() {
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Fail to restore Quality profile backup, XML document is not well formed");
- OrganizationDto organization = db.organizations().insert();
String notWellFormedXml = "<?xml version='1.0' encoding='UTF-8'?><profile><name>\"profil\"</name><language>\"language\"</language><rules/></profile";
- underTest.restore(db.getSession(), new StringReader(notWellFormedXml), organization, null);
+ underTest.restore(db.getSession(), new StringReader(notWellFormedXml), (String) null);
}
@Test
public void fail_to_restore_if_duplicate_rule() throws Exception {
- OrganizationDto organization = db.organizations().insert();
try {
String xml = Resources.toString(getClass().getResource("QProfileBackuperTest/duplicates-xml-backup.xml"), UTF_8);
- underTest.restore(db.getSession(), new StringReader(xml), organization, null);
+ underTest.restore(db.getSession(), new StringReader(xml), (String) null);
fail();
} catch (IllegalArgumentException e) {
assertThat(e).hasMessage("The quality profile cannot be restored as it contains duplicates for the following rules: xoo:x1, xoo:x2");
@@ -359,7 +350,7 @@ public class QProfileBackuperImplTest {
@Test
public void fail_to_restore_external_rule() {
db.rules().insert(RuleKey.of("sonarjs", "s001"), r -> r.setIsExternal(true));
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
Reader backup = new StringReader("<?xml version='1.0' encoding='UTF-8'?>" +
"<profile><name>foo</name>" +
"<language>js</language>" +
@@ -377,7 +368,7 @@ public class QProfileBackuperImplTest {
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The quality profile cannot be restored as it contains rules from external rule engines: sonarjs:s001");
- underTest.restore(db.getSession(), backup, organization, null);
+ underTest.restore(db.getSession(), backup, (String) null);
}
private RuleDefinitionDto createRule() {
@@ -385,7 +376,7 @@ public class QProfileBackuperImplTest {
}
private QProfileDto createProfile(String language) {
- return db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(language));
+ return db.qualityProfiles().insert(p -> p.setLanguage(language));
}
private ActiveRuleDto activate(QProfileDto profile, RuleDefinitionDto rule) {
@@ -415,20 +406,19 @@ public class QProfileBackuperImplTest {
private static class DummyProfileFactory implements QProfileFactory {
@Override
- public QProfileDto getOrCreateCustom(DbSession dbSession, OrganizationDto organization, QProfileName key) {
+ public QProfileDto getOrCreateCustom(DbSession dbSession, QProfileName key) {
return QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization.getUuid())
.setLanguage(key.getLanguage())
.setName(key.getName());
}
@Override
- public QProfileDto checkAndCreateCustom(DbSession dbSession, OrganizationDto organization, QProfileName name) {
+ public QProfileDto checkAndCreateCustom(DbSession dbSession, QProfileName name) {
throw new UnsupportedOperationException();
}
@Override
- public QProfileDto createCustom(DbSession dbSession, OrganizationDto organization, QProfileName name, @Nullable String parentKey) {
+ public QProfileDto createCustom(DbSession dbSession, QProfileName name, @Nullable String parentKey) {
throw new UnsupportedOperationException();
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileComparisonTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileComparisonTest.java
index 2426ee15662..22be30aa93e 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileComparisonTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileComparisonTest.java
@@ -86,8 +86,8 @@ public class QProfileComparisonTest {
db.ruleDao().insertRuleParam(dbSession, xooRule1, RuleParamDto.createFor(xooRule1)
.setName("min").setType(RuleParamType.INTEGER.type()));
- left = QProfileTesting.newXooP1("org-123");
- right = QProfileTesting.newXooP2("org-123");
+ left = QProfileTesting.newXooP1();
+ right = QProfileTesting.newXooP2();
db.qualityProfileDao().insert(dbSession, left, right);
dbSession.commit();
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileCopierTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileCopierTest.java
index 067b8a2d797..8289f7ec088 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileCopierTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileCopierTest.java
@@ -59,8 +59,7 @@ public class QProfileCopierTest {
@Test
public void create_target_profile_and_copy_rules() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto source = db.qualityProfiles().insert(organization);
+ QProfileDto source = db.qualityProfiles().insert();
QProfileDto target = underTest.copyToName(db.getSession(), source, "foo");
@@ -73,9 +72,8 @@ public class QProfileCopierTest {
@Test
public void create_target_profile_with_same_parent_than_source_profile() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto parent = db.qualityProfiles().insert(organization);
- QProfileDto source = db.qualityProfiles().insert(organization, p -> p.setParentKee(parent.getKee()));
+ QProfileDto parent = db.qualityProfiles().insert();
+ QProfileDto source = db.qualityProfiles().insert(p -> p.setParentKee(parent.getKee()));
QProfileDto target = underTest.copyToName(db.getSession(), source, "foo");
@@ -88,8 +86,7 @@ public class QProfileCopierTest {
@Test
public void fail_to_copy_on_self() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto source = db.qualityProfiles().insert(organization);
+ QProfileDto source = db.qualityProfiles().insert();
try {
underTest.copyToName(db.getSession(), source, source.getName());
@@ -102,9 +99,9 @@ public class QProfileCopierTest {
@Test
public void copy_to_existing_profile() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile1 = db.qualityProfiles().insert(organization);
- QProfileDto profile2 = db.qualityProfiles().insert(organization, p -> p.setLanguage(profile1.getLanguage()));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile1 = db.qualityProfiles().insert();
+ QProfileDto profile2 = db.qualityProfiles().insert(p -> p.setLanguage(profile1.getLanguage()));
QProfileDto target = underTest.copyToName(db.getSession(), profile1, profile2.getName());
@@ -119,18 +116,17 @@ public class QProfileCopierTest {
private QProfileDto createdProfile;
@Override
- public QProfileDto getOrCreateCustom(DbSession dbSession, OrganizationDto organization, QProfileName key) {
+ public QProfileDto getOrCreateCustom(DbSession dbSession, QProfileName key) {
throw new UnsupportedOperationException();
}
@Override
- public QProfileDto checkAndCreateCustom(DbSession dbSession, OrganizationDto organization, QProfileName key) {
+ public QProfileDto checkAndCreateCustom(DbSession dbSession, QProfileName key) {
throw new UnsupportedOperationException();
}
- @Override public QProfileDto createCustom(DbSession dbSession, OrganizationDto organization, QProfileName key, @Nullable String parentKey) {
+ @Override public QProfileDto createCustom(DbSession dbSession, QProfileName key, @Nullable String parentKey) {
createdProfile = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization.getUuid())
.setLanguage(key.getLanguage())
.setParentKee(parentKey)
.setName(key.getName());
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileExportersTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileExportersTest.java
index f2363c41624..cfd30e45881 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileExportersTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileExportersTest.java
@@ -68,8 +68,7 @@ public class QProfileExportersTest {
@org.junit.Rule
public DbTester db = DbTester.create(system2);
- public DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
- private RuleFinder ruleFinder = new DefaultRuleFinder(db.getDbClient(), defaultOrganizationProvider);
+ private RuleFinder ruleFinder = new DefaultRuleFinder(db.getDbClient());
private ProfileExporter[] exporters = new ProfileExporter[] {
new StandardExporter(), new XooExporter()};
private ProfileImporter[] importers = new ProfileImporter[] {
@@ -131,7 +130,7 @@ public class QProfileExportersTest {
@Test
public void fail_to_import_xml_when_error_in_importer() {
try {
- underTest.importXml(QProfileTesting.newXooP1("org-123"), "XooProfileImporterWithError", toInputStream("<xml/>", UTF_8), db.getSession());
+ underTest.importXml(QProfileTesting.newXooP1(), "XooProfileImporterWithError", toInputStream("<xml/>", UTF_8), db.getSession());
fail();
} catch (BadRequestException e) {
assertThat(e).hasMessage("error!");
@@ -141,7 +140,7 @@ public class QProfileExportersTest {
@Test
public void fail_to_import_xml_on_unknown_importer() {
try {
- underTest.importXml(QProfileTesting.newXooP1("org-123"), "Unknown", toInputStream("<xml/>", UTF_8), db.getSession());
+ underTest.importXml(QProfileTesting.newXooP1(), "Unknown", toInputStream("<xml/>", UTF_8), db.getSession());
fail();
} catch (BadRequestException e) {
assertThat(e).hasMessage("No such importer : Unknown");
@@ -187,7 +186,7 @@ public class QProfileExportersTest {
}
private QProfileDto createProfile() {
- return db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(rule.getLanguage()));
+ return db.qualityProfiles().insert(p -> p.setLanguage(rule.getLanguage()));
}
public static class XooExporter extends ProfileExporter {
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileFactoryImplTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileFactoryImplTest.java
index 516df5641ad..e0da7a31952 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileFactoryImplTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileFactoryImplTest.java
@@ -34,7 +34,6 @@ import org.sonar.core.util.SequenceUuidFactory;
import org.sonar.core.util.Uuids;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.qualityprofile.ActiveRuleDto;
import org.sonar.db.qualityprofile.ActiveRuleParamDto;
@@ -81,61 +80,54 @@ public class QProfileFactoryImplTest {
@Test
public void checkAndCreateCustom() {
- OrganizationDto organization = db.organizations().insert();
+ QProfileDto profile = underTest.checkAndCreateCustom(dbSession, new QProfileName("xoo", "P1"));
- QProfileDto profile = underTest.checkAndCreateCustom(dbSession, organization, new QProfileName("xoo", "P1"));
-
- assertThat(profile.getOrganizationUuid()).isEqualTo(organization.getUuid());
assertThat(profile.getKee()).isNotEmpty();
assertThat(profile.getName()).isEqualTo("P1");
assertThat(profile.getLanguage()).isEqualTo("xoo");
assertThat(profile.getRulesProfileUuid()).isNotNull();
assertThat(profile.isBuiltIn()).isFalse();
- QProfileDto reloaded = db.getDbClient().qualityProfileDao().selectByNameAndLanguage(dbSession, organization, profile.getName(), profile.getLanguage());
+ QProfileDto reloaded = db.getDbClient().qualityProfileDao().selectByNameAndLanguage(dbSession, profile.getName(), profile.getLanguage());
assertEqual(profile, reloaded);
- assertThat(db.getDbClient().qualityProfileDao().selectOrderedByOrganizationUuid(dbSession, organization)).extracting(QProfileDto::getKee).containsExactly(profile.getKee());
+ assertThat(db.getDbClient().qualityProfileDao().selectAll(dbSession)).extracting(QProfileDto::getKee).containsExactly(profile.getKee());
}
@Test
public void checkAndCreateCustom_throws_BadRequestException_if_name_null() {
QProfileName name = new QProfileName("xoo", null);
- OrganizationDto organization = db.organizations().insert();
expectBadRequestException("quality_profiles.profile_name_cant_be_blank");
- underTest.checkAndCreateCustom(dbSession, organization, name);
+ underTest.checkAndCreateCustom(dbSession, name);
}
@Test
public void checkAndCreateCustom_throws_BadRequestException_if_name_empty() {
QProfileName name = new QProfileName("xoo", "");
- OrganizationDto organization = db.organizations().insert();
expectBadRequestException("quality_profiles.profile_name_cant_be_blank");
- underTest.checkAndCreateCustom(dbSession, organization, name);
+ underTest.checkAndCreateCustom(dbSession, name);
}
@Test
public void checkAndCreateCustom_throws_BadRequestException_if_already_exists() {
QProfileName name = new QProfileName("xoo", "P1");
- OrganizationDto organization = db.organizations().insert();
- underTest.checkAndCreateCustom(dbSession, organization, name);
+ underTest.checkAndCreateCustom(dbSession, name);
dbSession.commit();
expectBadRequestException("Quality profile already exists: xoo/P1");
- underTest.checkAndCreateCustom(dbSession, organization, name);
+ underTest.checkAndCreateCustom(dbSession, name);
}
@Test
public void delete_custom_profiles() {
- OrganizationDto org = db.organizations().insert();
- QProfileDto profile1 = createCustomProfile(org);
- QProfileDto profile2 = createCustomProfile(org);
- QProfileDto profile3 = createCustomProfile(org);
+ QProfileDto profile1 = createCustomProfile();
+ QProfileDto profile2 = createCustomProfile();
+ QProfileDto profile3 = createCustomProfile();
underTest.delete(dbSession, asList(profile1, profile2));
@@ -147,8 +139,7 @@ public class QProfileFactoryImplTest {
@Test
public void delete_removes_custom_profile_marked_as_default() {
- OrganizationDto org = db.organizations().insert();
- QProfileDto profile = createCustomProfile(org);
+ QProfileDto profile = createCustomProfile();
db.qualityProfiles().setAsDefault(profile);
underTest.delete(dbSession, asList(profile));
@@ -158,9 +149,8 @@ public class QProfileFactoryImplTest {
@Test
public void delete_removes_custom_profile_from_project_associations() {
- OrganizationDto org = db.organizations().insert();
- QProfileDto profile = createCustomProfile(org);
- ProjectDto project = db.components().insertPrivateProjectDto(org);
+ QProfileDto profile = createCustomProfile();
+ ProjectDto project = db.components().insertPrivateProjectDto();
db.qualityProfiles().associateWithProject(project, profile);
underTest.delete(dbSession, asList(profile));
@@ -171,15 +161,14 @@ public class QProfileFactoryImplTest {
@Test
public void delete_builtin_profile() {
RulesProfileDto builtInProfile = createBuiltInProfile();
- OrganizationDto org = db.organizations().insert();
- QProfileDto profile = associateBuiltInProfileToOrganization(builtInProfile, org);
+ QProfileDto profile = associateBuiltInProfile(builtInProfile);
underTest.delete(dbSession, asList(profile));
verifyNoCallsActiveRuleIndexerDelete();
// remove only from org_qprofiles
- assertThat(db.getDbClient().qualityProfileDao().selectOrderedByOrganizationUuid(dbSession, org)).isEmpty();
+ assertThat(db.getDbClient().qualityProfileDao().selectAll(dbSession)).isEmpty();
assertThatRulesProfileExists(builtInProfile);
}
@@ -187,9 +176,8 @@ public class QProfileFactoryImplTest {
@Test
public void delete_builtin_profile_associated_to_project() {
RulesProfileDto builtInProfile = createBuiltInProfile();
- OrganizationDto org = db.organizations().insert();
- ProjectDto project = db.components().insertPrivateProjectDto(org);
- QProfileDto profile = associateBuiltInProfileToOrganization(builtInProfile, org);
+ ProjectDto project = db.components().insertPrivateProjectDto();
+ QProfileDto profile = associateBuiltInProfile(builtInProfile);
db.qualityProfiles().associateWithProject(project, profile);
assertThat(db.getDbClient().qualityProfileDao().selectAssociatedToProjectAndLanguage(dbSession, project, profile.getLanguage())).isNotNull();
@@ -198,16 +186,15 @@ public class QProfileFactoryImplTest {
verifyNoCallsActiveRuleIndexerDelete();
// remove only from org_qprofiles and project_qprofiles
- assertThat(db.getDbClient().qualityProfileDao().selectOrderedByOrganizationUuid(dbSession, org)).isEmpty();
+ assertThat(db.getDbClient().qualityProfileDao().selectAll(dbSession)).isEmpty();
assertThat(db.getDbClient().qualityProfileDao().selectAssociatedToProjectAndLanguage(dbSession, project, profile.getLanguage())).isNull();
assertThatRulesProfileExists(builtInProfile);
}
@Test
- public void delete_builtin_profile_marked_as_default_on_organization() {
+ public void delete_builtin_profile_marked_as_default() {
RulesProfileDto builtInProfile = createBuiltInProfile();
- OrganizationDto org = db.organizations().insert();
- QProfileDto profile = associateBuiltInProfileToOrganization(builtInProfile, org);
+ QProfileDto profile = associateBuiltInProfile(builtInProfile);
db.qualityProfiles().setAsDefault(profile);
underTest.delete(dbSession, asList(profile));
@@ -215,15 +202,14 @@ public class QProfileFactoryImplTest {
verifyNoCallsActiveRuleIndexerDelete();
// remove only from org_qprofiles and default_qprofiles
- assertThat(db.getDbClient().qualityProfileDao().selectOrderedByOrganizationUuid(dbSession, org)).isEmpty();
- assertThat(db.getDbClient().qualityProfileDao().selectDefaultProfile(dbSession, org, profile.getLanguage())).isNull();
+ assertThat(db.getDbClient().qualityProfileDao().selectAll(dbSession)).isEmpty();
+ assertThat(db.getDbClient().qualityProfileDao().selectDefaultProfile(dbSession, profile.getLanguage())).isNull();
assertThatRulesProfileExists(builtInProfile);
}
@Test
public void delete_accepts_empty_list_of_keys() {
- OrganizationDto org = db.organizations().insert();
- QProfileDto profile = createCustomProfile(org);
+ QProfileDto profile = createCustomProfile();
underTest.delete(dbSession, Collections.emptyList());
@@ -233,11 +219,10 @@ public class QProfileFactoryImplTest {
@Test
public void delete_removes_qprofile_edit_permissions() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
UserDto user = db.users().insertUser();
db.qualityProfiles().addUserPermission(profile, user);
- GroupDto group = db.users().insertGroup(organization);
+ GroupDto group = db.users().insertGroup();
db.qualityProfiles().addGroupPermission(profile, group);
underTest.delete(dbSession, asList(profile));
@@ -246,8 +231,8 @@ public class QProfileFactoryImplTest {
assertThat(db.countRowsOfTable(dbSession, "qprofile_edit_groups")).isZero();
}
- private QProfileDto createCustomProfile(OrganizationDto org) {
- QProfileDto profile = db.qualityProfiles().insert(org, p -> p.setLanguage("xoo").setIsBuiltIn(false));
+ private QProfileDto createCustomProfile() {
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage("xoo").setIsBuiltIn(false));
ActiveRuleDto activeRuleDto = db.qualityProfiles().activateRule(profile, rule);
ActiveRuleParamDto activeRuleParam = new ActiveRuleParamDto()
@@ -290,11 +275,11 @@ public class QProfileFactoryImplTest {
return rulesProfileDto;
}
- private QProfileDto associateBuiltInProfileToOrganization(RulesProfileDto rulesProfile, OrganizationDto organization) {
+ private QProfileDto associateBuiltInProfile(RulesProfileDto rulesProfile) {
OrgQProfileDto orgQProfileDto = new OrgQProfileDto()
.setUuid(Uuids.createFast())
- .setRulesProfileUuid(rulesProfile.getUuid())
- .setOrganizationUuid(organization.getUuid());
+ .setRulesProfileUuid(rulesProfile.getUuid());
+
db.getDbClient().qualityProfileDao().insert(dbSession, orgQProfileDto);
db.commit();
return QProfileDto.from(orgQProfileDto, rulesProfile);
@@ -350,7 +335,6 @@ public class QProfileFactoryImplTest {
}
private static void assertEqual(QProfileDto p1, QProfileDto p2) {
- assertThat(p2.getOrganizationUuid()).isEqualTo(p1.getOrganizationUuid());
assertThat(p2.getName()).isEqualTo(p1.getName());
assertThat(p2.getKee()).startsWith(p1.getKee());
assertThat(p2.getLanguage()).isEqualTo(p1.getLanguage());
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileResetImplTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileResetImplTest.java
index b93f42d95e8..7254c4e7789 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileResetImplTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileResetImplTest.java
@@ -65,7 +65,7 @@ public class QProfileResetImplTest {
@Test
public void reset() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(LANGUAGE));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE));
RuleDefinitionDto existingRule = db.rules().insert(r -> r.setLanguage(LANGUAGE));
qProfileRules.activateAndCommit(db.getSession(), profile, singleton(RuleActivation.create(existingRule.getUuid())));
RuleDefinitionDto newRule = db.rules().insert(r -> r.setLanguage(LANGUAGE));
@@ -83,8 +83,8 @@ public class QProfileResetImplTest {
@Test
public void inherited_rules_are_not_disabled() {
- QProfileDto parentProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(LANGUAGE));
- QProfileDto childProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(LANGUAGE));
+ QProfileDto parentProfile = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE));
+ QProfileDto childProfile = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE));
qProfileTree.setParentAndCommit(db.getSession(), childProfile, parentProfile);
RuleDefinitionDto existingRule = db.rules().insert(r -> r.setLanguage(LANGUAGE));
qProfileRules.activateAndCommit(db.getSession(), parentProfile, singleton(RuleActivation.create(existingRule.getUuid())));
@@ -100,7 +100,7 @@ public class QProfileResetImplTest {
@Test
public void fail_when_profile_is_built_in() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(LANGUAGE).setIsBuiltIn(true));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE).setIsBuiltIn(true));
RuleDefinitionDto defaultRule = db.rules().insert(r -> r.setLanguage(LANGUAGE));
expectedException.expect(IllegalArgumentException.class);
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileRuleImplTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileRuleImplTest.java
index 46b540966b0..8afc5b9adff 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileRuleImplTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileRuleImplTest.java
@@ -327,7 +327,7 @@ public class QProfileRuleImplTest {
@Test
public void fail_to_activate_rule_if_profile_is_on_different_languages() {
RuleDefinitionDto rule = createJavaRule();
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage("js"));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage("js"));
RuleActivation activation = RuleActivation.create(rule.getUuid());
expectFailure("java rule " + rule.getKey() + " cannot be activated on js profile " + profile.getKee(), () -> activate(profile, activation));
@@ -710,7 +710,7 @@ public class QProfileRuleImplTest {
int bulkSize = SearchOptions.MAX_PAGE_SIZE + 10 + new Random().nextInt(100);
String language = randomAlphanumeric(10);
String repositoryKey = randomAlphanumeric(10);
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(language));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(language));
List<RuleDto> rules = new ArrayList<>();
IntStream.rangeClosed(1, bulkSize).forEach(
@@ -737,7 +737,7 @@ public class QProfileRuleImplTest {
int bulkSize = SearchOptions.MAX_PAGE_SIZE + 10 + new Random().nextInt(100);
String language = randomAlphanumeric(10);
String repositoryKey = randomAlphanumeric(10);
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(language));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(language));
List<RuleDto> rules = new ArrayList<>();
IntStream.rangeClosed(1, bulkSize).forEach(
@@ -851,7 +851,7 @@ public class QProfileRuleImplTest {
@Test
public void activation_fails_when_profile_is_built_in() {
RuleDefinitionDto rule = createRule();
- QProfileDto builtInProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(rule.getLanguage()).setIsBuiltIn(true));
+ QProfileDto builtInProfile = db.qualityProfiles().insert(p -> p.setLanguage(rule.getLanguage()).setIsBuiltIn(true));
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The built-in profile " + builtInProfile.getName() + " is read-only and can't be updated");
@@ -873,11 +873,11 @@ public class QProfileRuleImplTest {
}
private QProfileDto createProfile(RuleDefinitionDto rule) {
- return db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(rule.getLanguage()));
+ return db.qualityProfiles().insert(p -> p.setLanguage(rule.getLanguage()));
}
private QProfileDto createChildProfile(QProfileDto parent) {
- return db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p
+ return db.qualityProfiles().insert(p -> p
.setLanguage(parent.getLanguage())
.setParentKee(parent.getKee())
.setName("Child of " + parent.getName()));
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileRulesImplTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileRulesImplTest.java
index abfc7d442f9..6a5074a8827 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileRulesImplTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileRulesImplTest.java
@@ -26,7 +26,6 @@ import org.junit.Test;
import org.sonar.api.rule.Severity;
import org.sonar.api.utils.System2;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleDto;
import org.sonar.db.qualityprofile.QProfileChangeDto;
import org.sonar.db.qualityprofile.QProfileChangeQuery;
@@ -62,8 +61,7 @@ public class QProfileRulesImplTest {
@Test
public void activate_one_rule() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qProfile = db.qualityProfiles().insert();
RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage(qProfile.getLanguage()));
RuleActivation ruleActivation = RuleActivation.create(rule.getUuid(), Severity.CRITICAL, Collections.emptyMap());
@@ -78,8 +76,7 @@ public class QProfileRulesImplTest {
public void active_rule_change() {
UserDto user = db.users().insertUser();
userSession.logIn(user);
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qProfile = db.qualityProfiles().insert();
RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage(qProfile.getLanguage()));
RuleActivation ruleActivation = RuleActivation.create(rule.getUuid(), Severity.CRITICAL, Collections.emptyMap());
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileTesting.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileTesting.java
index 4ad6d8c9109..3c2da445191 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileTesting.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileTesting.java
@@ -19,7 +19,6 @@
*/
package org.sonar.server.qualityprofile;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
/**
@@ -40,11 +39,10 @@ public class QProfileTesting {
* @deprecated provide organization as dto
*/
@Deprecated
- public static QProfileDto newQProfileDto(String organizationUuid, QProfileName name, String key) {
+ public static QProfileDto newQProfileDto(QProfileName name, String key) {
return new QProfileDto()
.setKee(key)
.setRulesProfileUuid("rp-" + key)
- .setOrganizationUuid(organizationUuid)
.setName(name.getName())
.setLanguage(name.getLanguage());
}
@@ -53,44 +51,23 @@ public class QProfileTesting {
* @deprecated provide organization as dto
*/
@Deprecated
- public static QProfileDto newXooP1(String organizationUuid) {
- return newQProfileDto(organizationUuid, XOO_P1_NAME, XOO_P1_KEY);
+ public static QProfileDto newXooP1() {
+ return newQProfileDto(XOO_P1_NAME, XOO_P1_KEY);
}
/**
* @deprecated provide organization as dto
*/
@Deprecated
- public static QProfileDto newXooP2(String organizationUuid) {
- return newQProfileDto(organizationUuid, XOO_P2_NAME, XOO_P2_KEY);
+ public static QProfileDto newXooP2() {
+ return newQProfileDto(XOO_P2_NAME, XOO_P2_KEY);
}
/**
* @deprecated provide organization as dto
*/
@Deprecated
- public static QProfileDto newXooP3(String organizationUuid) {
- return newQProfileDto(organizationUuid, XOO_P3_NAME, XOO_P3_KEY);
- }
-
- public static QProfileDto newQProfileDto(OrganizationDto organization, QProfileName name, String uuid) {
- return new QProfileDto()
- .setKee(uuid)
- .setRulesProfileUuid("rp-" + uuid)
- .setOrganizationUuid(organization.getUuid())
- .setName(name.getName())
- .setLanguage(name.getLanguage());
- }
-
- public static QProfileDto newXooP1(OrganizationDto organization) {
- return newQProfileDto(organization, XOO_P1_NAME, XOO_P1_KEY);
- }
-
- public static QProfileDto newXooP2(OrganizationDto organization) {
- return newQProfileDto(organization, XOO_P2_NAME, XOO_P2_KEY);
- }
-
- public static QProfileDto newXooP3(OrganizationDto organization) {
- return newQProfileDto(organization, XOO_P3_NAME, XOO_P3_KEY);
+ public static QProfileDto newXooP3() {
+ return newQProfileDto(XOO_P3_NAME, XOO_P3_KEY);
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileTreeImplTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileTreeImplTest.java
index cae00247fe4..4b307e6d7d6 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileTreeImplTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/QProfileTreeImplTest.java
@@ -198,11 +198,11 @@ public class QProfileTreeImplTest {
}
private QProfileDto createProfile(RuleDefinitionDto rule) {
- return db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(rule.getLanguage()));
+ return db.qualityProfiles().insert(p -> p.setLanguage(rule.getLanguage()));
}
private QProfileDto createChildProfile(QProfileDto parent) {
- return db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p
+ return db.qualityProfiles().insert(p -> p
.setLanguage(parent.getLanguage())
.setParentKee(parent.getKee())
.setName("Child of " + parent.getName()));
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/RegisterQualityProfilesNotificationTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/RegisterQualityProfilesNotificationTest.java
index 570d404d63d..6887743b9ad 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/RegisterQualityProfilesNotificationTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/RegisterQualityProfilesNotificationTest.java
@@ -42,7 +42,6 @@ import org.sonar.core.util.UuidFactoryFast;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.qualityprofile.RulesProfileDto;
@@ -207,10 +206,9 @@ public class RegisterQualityProfilesNotificationTest {
public void notification_does_not_include_inherited_profiles_when_rule_is_added() {
String language = newLanguageKey();
RuleDefinitionDto newRule = db.rules().insert(r -> r.setLanguage(language));
- OrganizationDto organization = db.organizations().insert();
- QProfileDto builtInQProfileDto = insertProfile(organization, orgQProfile -> orgQProfile.setIsBuiltIn(true).setLanguage(language));
- QProfileDto childQProfileDto = insertProfile(organization, orgQProfile -> orgQProfile.setIsBuiltIn(false).setLanguage(language).setParentKee(builtInQProfileDto.getKee()));
+ QProfileDto builtInQProfileDto = insertProfile(orgQProfile -> orgQProfile.setIsBuiltIn(true).setLanguage(language));
+ QProfileDto childQProfileDto = insertProfile(orgQProfile -> orgQProfile.setIsBuiltIn(false).setLanguage(language).setParentKee(builtInQProfileDto.getKee()));
addPluginProfile(builtInQProfileDto, newRule);
builtInQProfileRepositoryRule.initialize();
@@ -231,11 +229,10 @@ public class RegisterQualityProfilesNotificationTest {
public void notification_does_not_include_inherited_profiled_when_rule_is_changed() {
String language = newLanguageKey();
RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage(language).setSeverity(Severity.MINOR));
- OrganizationDto organization = db.organizations().insert();
- QProfileDto builtInProfile = insertProfile(organization, orgQProfile -> orgQProfile.setIsBuiltIn(true).setLanguage(language));
+ QProfileDto builtInProfile = insertProfile(orgQProfile -> orgQProfile.setIsBuiltIn(true).setLanguage(language));
db.qualityProfiles().activateRule(builtInProfile, rule, ar -> ar.setSeverity(Severity.MINOR));
- QProfileDto childProfile = insertProfile(organization, orgQProfile -> orgQProfile.setIsBuiltIn(false).setLanguage(language).setParentKee(builtInProfile.getKee()));
+ QProfileDto childProfile = insertProfile(orgQProfile -> orgQProfile.setIsBuiltIn(false).setLanguage(language).setParentKee(builtInProfile.getKee()));
db.qualityProfiles().activateRule(childProfile, rule, ar -> ar.setInheritance(ActiveRuleDto.INHERITED).setSeverity(Severity.MINOR));
addPluginProfile(builtInProfile, rule);
builtInQProfileRepositoryRule.initialize();
@@ -258,13 +255,10 @@ public class RegisterQualityProfilesNotificationTest {
public void notification_does_not_include_inherited_profiles_when_rule_is_deactivated() {
String language = newLanguageKey();
RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage(language).setSeverity(Severity.MINOR));
- OrganizationDto organization = db.organizations().insert();
- QProfileDto builtInQProfileDto = insertProfile(organization,
- orgQProfile -> orgQProfile.setIsBuiltIn(true).setLanguage(language));
+ QProfileDto builtInQProfileDto = insertProfile(orgQProfile -> orgQProfile.setIsBuiltIn(true).setLanguage(language));
db.qualityProfiles().activateRule(builtInQProfileDto, rule);
- QProfileDto childQProfileDto = insertProfile(organization,
- orgQProfile -> orgQProfile.setIsBuiltIn(false).setLanguage(language).setParentKee(builtInQProfileDto.getKee()));
+ QProfileDto childQProfileDto = insertProfile(orgQProfile -> orgQProfile.setIsBuiltIn(false).setLanguage(language).setParentKee(builtInQProfileDto.getKee()));
qProfileRules.activateAndCommit(db.getSession(), childQProfileDto, singleton(RuleActivation.create(rule.getUuid())));
db.commit();
@@ -353,8 +347,8 @@ public class RegisterQualityProfilesNotificationTest {
db.commit();
}
- private QProfileDto insertProfile(OrganizationDto organization, Consumer<QProfileDto> consumer) {
- QProfileDto builtInQProfileDto = db.qualityProfiles().insert(organization, consumer);
+ private QProfileDto insertProfile(Consumer<QProfileDto> consumer) {
+ QProfileDto builtInQProfileDto = db.qualityProfiles().insert(consumer);
db.commit();
return builtInQProfileDto;
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/RegisterQualityProfilesTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/RegisterQualityProfilesTest.java
index 6292b61fce3..043ccc73108 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/RegisterQualityProfilesTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/RegisterQualityProfilesTest.java
@@ -31,11 +31,9 @@ import org.sonar.api.resources.Language;
import org.sonar.api.utils.System2;
import org.sonar.api.utils.log.LogTester;
import org.sonar.api.utils.log.LoggerLevel;
-import org.sonar.core.util.UuidFactoryFast;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.qualityprofile.RulesProfileDto;
import org.sonar.db.rule.RuleDefinitionDto;
@@ -67,7 +65,8 @@ public class RegisterQualityProfilesTest {
private DbClient dbClient = db.getDbClient();
private DummyBuiltInQProfileInsert insert = new DummyBuiltInQProfileInsert();
private DummyBuiltInQProfileUpdate update = new DummyBuiltInQProfileUpdate();
- private RegisterQualityProfiles underTest = new RegisterQualityProfiles(builtInQProfileRepositoryRule, dbClient, insert, update, mock(BuiltInQualityProfilesUpdateListener.class), system2);
+ private RegisterQualityProfiles underTest = new RegisterQualityProfiles(builtInQProfileRepositoryRule, dbClient, insert, update,
+ mock(BuiltInQualityProfilesUpdateListener.class), system2);
@Test
public void start_fails_if_BuiltInQProfileRepository_has_not_been_initialized() {
@@ -106,21 +105,15 @@ public class RegisterQualityProfilesTest {
@Test
public void rename_custom_outdated_profiles_if_same_name_than_built_in_profile() {
- OrganizationDto org1 = db.organizations().insert(org -> org.setKey("org1"));
- OrganizationDto org2 = db.organizations().insert(org -> org.setKey("org2"));
-
- QProfileDto outdatedProfileInOrg1 = db.qualityProfiles().insert(org1, p -> p.setIsBuiltIn(false)
- .setLanguage(FOO_LANGUAGE.getKey()).setName("Sonar way"));
- QProfileDto outdatedProfileInOrg2 = db.qualityProfiles().insert(org2, p -> p.setIsBuiltIn(false)
+ QProfileDto outdatedProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(false)
.setLanguage(FOO_LANGUAGE.getKey()).setName("Sonar way"));
builtInQProfileRepositoryRule.add(FOO_LANGUAGE, "Sonar way", false);
builtInQProfileRepositoryRule.initialize();
underTest.start();
- assertThat(selectPersistedName(outdatedProfileInOrg1)).isEqualTo("Sonar way (outdated copy)");
- assertThat(selectPersistedName(outdatedProfileInOrg2)).isEqualTo("Sonar way (outdated copy)");
- assertThat(logTester.logs(LoggerLevel.INFO)).contains("Rename Quality profiles [foo/Sonar way] to [Sonar way (outdated copy)] in 2 organizations");
+ assertThat(selectPersistedName(outdatedProfile)).isEqualTo("Sonar way (outdated copy)");
+ assertThat(logTester.logs(LoggerLevel.INFO)).contains("Rename Quality profiles [foo/Sonar way] to [Sonar way (outdated copy)]");
}
@Test
@@ -141,20 +134,16 @@ public class RegisterQualityProfilesTest {
@Test
public void update_default_built_in_quality_profile() {
- String orgUuid = UuidFactoryFast.getInstance().create();
-
RulesProfileDto ruleProfileWithoutRule = newRuleProfileDto(rp -> rp.setIsBuiltIn(true).setName("Sonar way").setLanguage(FOO_LANGUAGE.getKey()));
RulesProfileDto ruleProfileWithOneRule = newRuleProfileDto(rp -> rp.setIsBuiltIn(true).setName("Sonar way 2").setLanguage(FOO_LANGUAGE.getKey()));
QProfileDto qProfileWithoutRule = newQualityProfileDto()
.setIsBuiltIn(true)
.setLanguage(FOO_LANGUAGE.getKey())
- .setOrganizationUuid(orgUuid)
.setRulesProfileUuid(ruleProfileWithoutRule.getUuid());
QProfileDto qProfileWithOneRule = newQualityProfileDto()
.setIsBuiltIn(true)
.setLanguage(FOO_LANGUAGE.getKey())
- .setOrganizationUuid(orgUuid)
.setRulesProfileUuid(ruleProfileWithOneRule.getUuid());
db.qualityProfiles().insert(qProfileWithoutRule, qProfileWithOneRule);
@@ -201,8 +190,6 @@ public class RegisterQualityProfilesTest {
db.commit();
}
-
-
private static class DummyBuiltInQProfileInsert implements BuiltInQProfileInsert {
private final List<BuiltInQProfile> callLogs = new ArrayList<>();
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRuleActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRuleActionTest.java
index 87aa992a286..d329c1dcfed 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRuleActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRuleActionTest.java
@@ -77,13 +77,11 @@ public class ActivateRuleActionTest {
private WsActionTester ws = new WsActionTester(new ActivateRuleAction(dbClient, qProfileRules, userSession, wsSupport));
private OrganizationDto defaultOrganization;
- private OrganizationDto organization;
@Before
public void before() {
MockitoAnnotations.initMocks(this);
defaultOrganization = db.getDefaultOrganization();
- organization = db.organizations().insert();
}
@Test
@@ -109,7 +107,7 @@ public class ActivateRuleActionTest {
@Test
public void fail_if_not_organization_quality_profile_administrator() {
userSession.logIn(db.users().insertUser());
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
TestRequest request = ws.newRequest()
.setMethod("POST")
.setParam(PARAM_RULE, RuleTesting.newRule().getKey().toString())
@@ -124,7 +122,7 @@ public class ActivateRuleActionTest {
public void fail_activate_if_built_in_profile() {
userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, defaultOrganization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(defaultOrganization, profile -> profile.setIsBuiltIn(true).setName("Xoo profile").setLanguage("xoo"));
+ QProfileDto qualityProfile = db.qualityProfiles().insert(profile -> profile.setIsBuiltIn(true).setName("Xoo profile").setLanguage("xoo"));
TestRequest request = ws.newRequest()
.setMethod("POST")
.setParam(PARAM_RULE, RuleTesting.newRule().getKey().toString())
@@ -139,7 +137,7 @@ public class ActivateRuleActionTest {
@Test
public void fail_activate_external_rule() {
userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, defaultOrganization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(defaultOrganization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
RuleDefinitionDto rule = db.rules().insert(r -> r.setIsExternal(true));
TestRequest request = ws.newRequest()
@@ -154,9 +152,9 @@ public class ActivateRuleActionTest {
}
@Test
- public void activate_rule_in_default_organization() {
+ public void activate_rule() {
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, defaultOrganization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(defaultOrganization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
RuleDefinitionDto rule = db.rules().insert(RuleTesting.randomRuleKey());
TestRequest request = ws.newRequest()
.setMethod("POST")
@@ -181,36 +179,9 @@ public class ActivateRuleActionTest {
}
@Test
- public void activate_rule_in_specific_organization() {
- userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- RuleKey ruleKey = RuleTesting.randomRuleKey();
- String ruleUuid = db.rules().insert(ruleKey).getUuid();
- TestRequest request = ws.newRequest()
- .setMethod("POST")
- .setParam(PARAM_RULE, ruleKey.toString())
- .setParam(PARAM_KEY, qualityProfile.getKee())
- .setParam("severity", "BLOCKER")
- .setParam("params", "key1=v1;key2=v2")
- .setParam("reset", "false");
-
- TestResponse response = request.execute();
-
- assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT);
- verify(qProfileRules).activateAndCommit(any(DbSession.class), any(QProfileDto.class), ruleActivationCaptor.capture());
-
- Collection<RuleActivation> activations = ruleActivationCaptor.getValue();
- assertThat(activations).hasSize(1);
- RuleActivation activation = activations.iterator().next();
- assertThat(activation.getRuleUuid()).isEqualTo(ruleUuid);
- assertThat(activation.getSeverity()).isEqualTo(Severity.BLOCKER);
- assertThat(activation.isReset()).isFalse();
- }
-
- @Test
public void as_qprofile_editor() {
UserDto user = db.users().insertUser();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
db.qualityProfiles().addUserPermission(qualityProfile, user);
userSession.logIn(user);
RuleKey ruleKey = RuleTesting.randomRuleKey();
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRulesActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRulesActionTest.java
index 124ed1496d3..acf5ded08fb 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRulesActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ActivateRulesActionTest.java
@@ -48,7 +48,6 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.UUID_SIZE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_TARGET_KEY;
public class ActivateRulesActionTest {
@@ -68,12 +67,10 @@ public class ActivateRulesActionTest {
private WsActionTester ws = new WsActionTester(new ActivateRulesAction(ruleQueryFactory, userSession, qProfileRules, wsSupport, dbClient));
private OrganizationDto defaultOrganization;
- private OrganizationDto organization;
@Before
public void before() {
defaultOrganization = db.getDefaultOrganization();
- organization = db.organizations().insert();
}
@Test
@@ -102,7 +99,6 @@ public class ActivateRulesActionTest {
"available_since",
"activation",
"severities",
- "organization",
"cwe",
"owaspTop10",
"sansTop25",
@@ -111,12 +107,11 @@ public class ActivateRulesActionTest {
@Test
public void as_global_qprofile_admin() {
- userSession.logIn(db.users().insertUser()).addPermission(ADMINISTER_QUALITY_PROFILES, organization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ userSession.logIn(db.users().insertUser()).addPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_TARGET_KEY, qualityProfile.getKee())
.execute();
@@ -126,15 +121,14 @@ public class ActivateRulesActionTest {
@Test
public void as_qprofile_editor() {
UserDto user = db.users().insertUser();
- GroupDto group = db.users().insertGroup(organization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- db.organizations().addMember(organization, user);
+ GroupDto group = db.users().insertGroup(defaultOrganization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
+ db.organizations().addMember(defaultOrganization, user);
db.qualityProfiles().addGroupPermission(qualityProfile, group);
userSession.logIn(user).setGroups(group);
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_TARGET_KEY, qualityProfile.getKee())
.execute();
@@ -155,7 +149,7 @@ public class ActivateRulesActionTest {
@Test
public void fail_if_built_in_profile() {
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(defaultOrganization, p -> p.setIsBuiltIn(true));
+ QProfileDto qualityProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true));
TestRequest request = ws.newRequest()
.setMethod("POST")
.setParam(PARAM_TARGET_KEY, qualityProfile.getKee());
@@ -168,7 +162,7 @@ public class ActivateRulesActionTest {
@Test
public void fail_if_not_enough_permission() {
userSession.logIn(db.users().insertUser());
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
expectedException.expect(ForbiddenException.class);
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddGroupActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddGroupActionTest.java
index ad73a8f2b61..7693cb69701 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddGroupActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddGroupActionTest.java
@@ -45,7 +45,6 @@ import static java.lang.String.format;
import static org.assertj.core.api.Assertions.assertThat;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_GROUP;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class AddGroupActionTest {
@@ -71,13 +70,13 @@ public class AddGroupActionTest {
assertThat(def.key()).isEqualTo("add_group");
assertThat(def.isPost()).isTrue();
assertThat(def.isInternal()).isTrue();
- assertThat(def.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("organization", "qualityProfile", "language", "group");
+ assertThat(def.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("qualityProfile", "language", "group");
}
@Test
public void add_group() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
@@ -85,7 +84,6 @@ public class AddGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(response.getStatus()).isEqualTo(204);
@@ -94,8 +92,8 @@ public class AddGroupActionTest {
@Test
public void does_nothing_when_group_can_already_edit_profile() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
db.qualityProfiles().addGroupPermission(profile, group);
assertThat(db.getDbClient().qProfileEditGroupsDao().exists(db.getSession(), profile, group)).isTrue();
@@ -105,7 +103,6 @@ public class AddGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditGroupsDao().exists(db.getSession(), profile, group)).isTrue();
@@ -113,8 +110,8 @@ public class AddGroupActionTest {
@Test
public void qp_administers_can_add_group() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
@@ -122,7 +119,6 @@ public class AddGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditGroupsDao().exists(db.getSession(), profile, group)).isTrue();
@@ -130,8 +126,8 @@ public class AddGroupActionTest {
@Test
public void can_add_group_with_user_edit_permission() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
UserDto userAllowedToEditProfile = db.users().insertUser();
db.qualityProfiles().addUserPermission(profile, userAllowedToEditProfile);
@@ -141,7 +137,6 @@ public class AddGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditGroupsDao().exists(db.getSession(), profile, group)).isTrue();
@@ -149,8 +144,8 @@ public class AddGroupActionTest {
@Test
public void can_add_group_with_group_edit_permission() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
UserDto userAllowedToEditProfile = db.users().insertUser();
db.qualityProfiles().addGroupPermission(profile, group);
@@ -160,7 +155,6 @@ public class AddGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditGroupsDao().exists(db.getSession(), profile, group)).isTrue();
@@ -169,7 +163,7 @@ public class AddGroupActionTest {
@Test
public void uses_default_organization_when_no_organization() {
OrganizationDto organization = db.getDefaultOrganization();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
@@ -184,8 +178,8 @@ public class AddGroupActionTest {
@Test
public void fail_when_group_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
@@ -195,90 +189,49 @@ public class AddGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, "unknown")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_qprofile_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.getDefaultOrganization();
GroupDto group = db.users().insertGroup(organization);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name 'unknown' does not exist in organization '%s'", organization.getKey()));
+ expectedException.expectMessage("Quality Profile for language 'xoo' and name 'unknown' does not exist");
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, "unknown")
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute();
- }
-
- @Test
- public void fail_when_qprofile_does_not_belong_to_organization() {
- OrganizationDto organization = db.organizations().insert();
- GroupDto group = db.users().insertGroup(organization);
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(anotherOrganization, p -> p.setLanguage(XOO));
- userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute();
- }
-
- @Test
- public void fail_when_group_does_not_belong_to_organization() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto anotherOrganization = db.organizations().insert();
- GroupDto group = db.users().insertGroup(anotherOrganization);
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
- userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("No group with name '%s' in organization '%s'", group.getName(), organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_wrong_language() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage("unknown"));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage("unknown"));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
+ expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist", profile.getName()));
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_qp_is_built_in() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.getDefaultOrganization();
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO).setIsBuiltIn(true));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO).setIsBuiltIn(true));
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(BadRequestException.class);
@@ -288,14 +241,13 @@ public class AddGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_not_enough_permission() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_GATES, organization);
@@ -306,7 +258,6 @@ public class AddGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddProjectActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddProjectActionTest.java
index aad58423dff..0856726284d 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddProjectActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddProjectActionTest.java
@@ -74,22 +74,19 @@ public class AddProjectActionTest {
// parameters
assertThat(definition.params()).extracting(WebService.Param::key)
- .containsExactlyInAnyOrder("qualityProfile", "project", "language", "organization");
+ .containsExactlyInAnyOrder("qualityProfile", "project", "language");
WebService.Param project = definition.param("project");
assertThat(project.isRequired()).isTrue();
WebService.Param languageParam = definition.param("language");
assertThat(languageParam.possibleValues()).containsOnly(LANGUAGE_1, LANGUAGE_2);
assertThat(languageParam.exampleValue()).isNull();
- WebService.Param organizationParam = definition.param("organization");
- assertThat(organizationParam.since()).isEqualTo("6.4");
- assertThat(organizationParam.isInternal()).isTrue();
}
@Test
- public void add_project_on_profile_of_default_organization() {
- logInAsProfileAdmin(db.getDefaultOrganization());
+ public void add_project_on_profile() {
+ logInAsProfileAdmin();
ProjectDto project = db.components().insertPrivateProjectDto(db.getDefaultOrganization());
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setLanguage("xoo"));
+ QProfileDto profile = db.qualityProfiles().insert(qp -> qp.setLanguage("xoo"));
TestResponse response = call(project, profile);
assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT);
@@ -98,69 +95,26 @@ public class AddProjectActionTest {
}
@Test
- public void add_project_on_profile_of_specified_organization() {
- OrganizationDto org1 = db.organizations().insert();
- logInAsProfileAdmin(org1);
- ProjectDto project = db.components().insertPrivateProjectDto(org1);
- QProfileDto profile = db.qualityProfiles().insert(org1, p -> p.setLanguage(LANGUAGE_1));
-
- TestResponse response = call(org1, project, profile);
- assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT);
-
- assertProjectIsAssociatedToProfile(project, profile);
- }
-
- @Test
public void as_qprofile_editor() {
- OrganizationDto organization = db.organizations().insert();
UserDto user = db.users().insertUser();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization, qp -> qp.setLanguage(LANGUAGE_1));
+ QProfileDto qualityProfile = db.qualityProfiles().insert(qp -> qp.setLanguage(LANGUAGE_1));
db.qualityProfiles().addUserPermission(qualityProfile, user);
- ProjectDto project = db.components().insertPrivateProjectDto(organization);
+ ProjectDto project = db.components().insertPrivateProjectDto();
userSession.logIn(user);
- call(organization, project, qualityProfile);
+ call(project, qualityProfile);
assertProjectIsAssociatedToProfile(project, qualityProfile);
}
@Test
- public void fail_if_profile_and_project_are_in_different_organizations() {
- OrganizationDto org1 = db.organizations().insert();
- OrganizationDto org2 = db.organizations().insert();
- logInAsProfileAdmin(org2);
- ProjectDto project = db.components().insertPrivateProjectDto(org1);
- QProfileDto profileInOrg2 = db.qualityProfiles().insert(org2, p -> p.setLanguage(LANGUAGE_1));
-
- expectedException.expect(IllegalArgumentException.class);
- expectedException.expectMessage("Project and quality profile must have the same organization");
-
- call(org2, project, profileInOrg2);
- }
-
- @Test
- public void fail_if_profile_is_not_found_in_specified_organization() {
- OrganizationDto org1 = db.organizations().insert();
- OrganizationDto org2 = db.organizations().insert();
- logInAsProfileAdmin(org1);
- ProjectDto project = db.components().insertPrivateProjectDto(org1);
- QProfileDto profileInOrg2 = db.qualityProfiles().insert(org2, p -> p.setLanguage(LANGUAGE_1));
-
- expectedException.expect(NotFoundException.class);
- expectedException
- .expectMessage("Quality Profile for language '" + LANGUAGE_1 + "' and name '" + profileInOrg2.getName() + "' does not exist in organization '" + org1.getKey() + "'");
-
- call(org1, project, profileInOrg2);
- }
-
- @Test
public void change_association_in_default_organization() {
- logInAsProfileAdmin(db.getDefaultOrganization());
+ logInAsProfileAdmin();
ProjectDto project = db.components().insertPrivateProjectDto(db.getDefaultOrganization());
// two profiles on same language
- QProfileDto profile1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(LANGUAGE_1));
- QProfileDto profile2 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(LANGUAGE_1));
+ QProfileDto profile1 = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE_1));
+ QProfileDto profile2 = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE_1));
db.qualityProfiles().associateWithProject(project, profile1);
call(project, profile2);
@@ -171,11 +125,11 @@ public class AddProjectActionTest {
@Test
public void changing_association_does_not_change_other_language_associations() {
- logInAsProfileAdmin(db.getDefaultOrganization());
+ logInAsProfileAdmin();
ProjectDto project = db.components().insertPrivateProjectDto(db.getDefaultOrganization());
- QProfileDto profile1Language1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(LANGUAGE_1));
- QProfileDto profile2Language2 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(LANGUAGE_2));
- QProfileDto profile3Language1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(LANGUAGE_1));
+ QProfileDto profile1Language1 = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE_1));
+ QProfileDto profile2Language2 = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE_2));
+ QProfileDto profile3Language1 = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE_1));
db.qualityProfiles().associateWithProject(project, profile1Language1, profile2Language2);
call(project, profile3Language1);
@@ -187,7 +141,7 @@ public class AddProjectActionTest {
@Test
public void project_administrator_can_change_profile() {
ProjectDto project = db.components().insertPrivateProjectDto(db.getDefaultOrganization());
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setLanguage("xoo"));
+ QProfileDto profile = db.qualityProfiles().insert(qp -> qp.setLanguage("xoo"));
userSession.logIn(db.users().insertUser()).addProjectPermission(UserRole.ADMIN, project);
call(project, profile);
@@ -199,7 +153,7 @@ public class AddProjectActionTest {
public void throw_ForbiddenException_if_not_project_nor_organization_administrator() {
userSession.logIn(db.users().insertUser());
ProjectDto project = db.components().insertPrivateProjectDto(db.getDefaultOrganization());
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setLanguage("xoo"));
+ QProfileDto profile = db.qualityProfiles().insert(qp -> qp.setLanguage("xoo"));
expectedException.expect(ForbiddenException.class);
expectedException.expectMessage("Insufficient privileges");
@@ -211,7 +165,7 @@ public class AddProjectActionTest {
public void throw_UnauthorizedException_if_not_logged_in() {
userSession.anonymous();
ProjectDto project = db.components().insertPrivateProjectDto(db.getDefaultOrganization());
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile = db.qualityProfiles().insert();
expectedException.expect(UnauthorizedException.class);
expectedException.expectMessage("Authentication is required");
@@ -221,8 +175,8 @@ public class AddProjectActionTest {
@Test
public void throw_NotFoundException_if_project_does_not_exist() {
- logInAsProfileAdmin(db.getDefaultOrganization());
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ logInAsProfileAdmin();
+ QProfileDto profile = db.qualityProfiles().insert();
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Project 'unknown' not found");
@@ -235,7 +189,7 @@ public class AddProjectActionTest {
@Test
public void throw_NotFoundException_if_profile_does_not_exist() {
- logInAsProfileAdmin(db.getDefaultOrganization());
+ logInAsProfileAdmin();
ComponentDto project = db.components().insertPrivateProject(db.getDefaultOrganization());
expectedException.expect(NotFoundException.class);
@@ -250,11 +204,10 @@ public class AddProjectActionTest {
@Test
public void fail_when_using_branch_db_key() {
- OrganizationDto organization = db.organizations().insert();
- ComponentDto project = db.components().insertPublicProject(organization);
+ ComponentDto project = db.components().insertPublicProject();
userSession.logIn(db.users().insertUser()).addProjectPermission(UserRole.ADMIN, project);
ComponentDto branch = db.components().insertProjectBranch(project);
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
expectedException.expect(NotFoundException.class);
expectedException.expectMessage(format("Project '%s' not found", branch.getDbKey()));
@@ -275,8 +228,8 @@ public class AddProjectActionTest {
assertThat(loaded == null || !loaded.getKee().equals(profile.getKee())).isTrue();
}
- private void logInAsProfileAdmin(OrganizationDto organization) {
- userSession.logIn(db.users().insertUser()).addPermission(ADMINISTER_QUALITY_PROFILES, organization);
+ private void logInAsProfileAdmin() {
+ userSession.logIn(db.users().insertUser()).addPermission(ADMINISTER_QUALITY_PROFILES, db.getDefaultOrganization());
}
private TestResponse call(ProjectDto project, QProfileDto qualityProfile) {
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddUserActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddUserActionTest.java
index 13f75724031..be683637f66 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddUserActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/AddUserActionTest.java
@@ -45,7 +45,6 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LOGIN;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class AddUserActionTest {
@@ -71,13 +70,13 @@ public class AddUserActionTest {
assertThat(def.key()).isEqualTo("add_user");
assertThat(def.isPost()).isTrue();
assertThat(def.isInternal()).isTrue();
- assertThat(def.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("organization", "qualityProfile", "language", "login");
+ assertThat(def.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("qualityProfile", "language", "login");
}
@Test
public void add_user() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
@@ -86,7 +85,6 @@ public class AddUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(response.getStatus()).isEqualTo(204);
@@ -95,8 +93,8 @@ public class AddUserActionTest {
@Test
public void does_nothing_when_user_can_already_edit_profile() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
db.qualityProfiles().addUserPermission(profile, user);
@@ -107,7 +105,6 @@ public class AddUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditUsersDao().exists(db.getSession(), profile, user)).isTrue();
@@ -115,8 +112,8 @@ public class AddUserActionTest {
@Test
public void qp_administers_can_add_user() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
@@ -125,7 +122,6 @@ public class AddUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditUsersDao().exists(db.getSession(), profile, user)).isTrue();
@@ -133,8 +129,8 @@ public class AddUserActionTest {
@Test
public void qp_editors_can_add_user() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
UserDto userAllowedToEditProfile = db.users().insertUser();
@@ -145,7 +141,6 @@ public class AddUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditUsersDao().exists(db.getSession(), profile, user)).isTrue();
@@ -154,7 +149,7 @@ public class AddUserActionTest {
@Test
public void uses_default_organization_when_no_organization() {
OrganizationDto organization = db.getDefaultOrganization();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
@@ -162,7 +157,7 @@ public class AddUserActionTest {
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_LOGIN, user.getLogin() )
+ .setParam(PARAM_LOGIN, user.getLogin())
.execute();
assertThat(db.getDbClient().qProfileEditUsersDao().exists(db.getSession(), profile, user)).isTrue();
@@ -170,8 +165,8 @@ public class AddUserActionTest {
@Test
public void fail_when_user_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
@@ -181,93 +176,50 @@ public class AddUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, "unknown")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_qprofile_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name 'unknown' does not exist in organization '%s'", organization.getKey()));
+ expectedException.expectMessage("Quality Profile for language 'xoo' and name 'unknown' does not exist");
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, "unknown")
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute();
- }
-
- @Test
- public void fail_when_qprofile_does_not_belong_to_organization() {
- OrganizationDto organization = db.organizations().insert();
- UserDto user = db.users().insertUser();
- db.organizations().addMember(organization, user);
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(anotherOrganization, p -> p.setLanguage(XOO));
- userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_wrong_language() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage("unknown"));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage("unknown"));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute();
- }
-
- @Test
- public void fail_when_user_is_not_member_of_organization() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto anotherOrganization = db.organizations().insert();
- UserDto user = db.users().insertUser();
- db.organizations().addMember(anotherOrganization, user);
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
- userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
-
- expectedException.expect(IllegalArgumentException.class);
- expectedException.expectMessage(format("User '%s' is not member of organization '%s'", user.getLogin(), organization.getKey()));
+ expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist", profile.getName()));
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_qp_is_built_in() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO).setIsBuiltIn(true));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO).setIsBuiltIn(true));
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(BadRequestException.class);
@@ -277,14 +229,13 @@ public class AddUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_not_enough_permission() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_GATES, organization);
@@ -295,7 +246,6 @@ public class AddUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/BackupActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/BackupActionTest.java
index bbcd4447d9b..ff66282af44 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/BackupActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/BackupActionTest.java
@@ -25,11 +25,7 @@ import org.sonar.api.resources.Languages;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
-import org.sonar.db.user.UserDto;
-import org.sonar.server.exceptions.ForbiddenException;
-import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.language.LanguageTesting;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
@@ -41,11 +37,8 @@ import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.TestResponse;
import org.sonar.server.ws.WsActionTester;
-import static java.lang.String.format;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.sonar.db.organization.OrganizationDto.Subscription.FREE;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
public class BackupActionTest {
@@ -64,7 +57,7 @@ public class BackupActionTest {
@Test
public void returns_backup_of_profile_with_specified_key() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setLanguage("xoo"));
+ QProfileDto profile = db.qualityProfiles().insert(qp -> qp.setLanguage("xoo"));
TestResponse response = tester.newRequest()
.setParam("language", profile.getLanguage())
@@ -77,7 +70,7 @@ public class BackupActionTest {
@Test
public void returns_backup_of_profile_with_specified_name_on_default_organization() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(A_LANGUAGE));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(A_LANGUAGE));
TestResponse response = tester.newRequest()
.setParam("language", profile.getLanguage())
@@ -87,78 +80,6 @@ public class BackupActionTest {
}
@Test
- public void returns_backup_of_profile_with_specified_name_and_organization() {
- OrganizationDto org = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(org, p -> p.setLanguage(A_LANGUAGE));
-
- TestResponse response = tester.newRequest()
- .setParam("organization", org.getKey())
- .setParam("language", profile.getLanguage())
- .setParam("qualityProfile", profile.getName())
- .execute();
- assertThat(response.getInput()).isXmlEqualTo(xmlForProfileWithoutRules(profile));
- }
-
- @Test
- public void returns_backup_of_profile_on_free_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(FREE));
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE));
-
- TestResponse response = tester.newRequest()
- .setParam("organization", organization.getKey())
- .setParam("language", profile.getLanguage())
- .setParam("qualityProfile", profile.getName())
- .execute();
-
- assertThat(response.getInput()).isXmlEqualTo(xmlForProfileWithoutRules(profile));
- }
-
- @Test
- public void returns_backup_of_profile_on_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE));
- UserDto user = db.users().insertUser();
- userSession.logIn(user).addMembership(organization);
-
- TestResponse response = tester.newRequest()
- .setParam("organization", organization.getKey())
- .setParam("language", profile.getLanguage())
- .setParam("qualityProfile", profile.getName())
- .execute();
-
- assertThat(response.getInput()).isXmlEqualTo(xmlForProfileWithoutRules(profile));
- }
-
- @Test
- public void throws_NotFoundException_if_specified_organization_does_not_exist() {
- TestRequest request = tester.newRequest()
- .setParam("organization", "the-missing-org")
- .setParam("language", A_LANGUAGE)
- .setParam("qualityProfile", "the-name");
-
- assertThatThrownBy(request::execute)
- .isInstanceOf(NotFoundException.class)
- .hasMessage("No organization with key 'the-missing-org'");
- }
-
- @Test
- public void throws_NotFoundException_if_profile_name_exists_but_in_another_organization() {
- OrganizationDto org1 = db.organizations().insert();
- QProfileDto profileInOrg1 = db.qualityProfiles().insert(org1, p -> p.setLanguage(A_LANGUAGE));
- OrganizationDto org2 = db.organizations().insert();
- QProfileDto profileInOrg2 = db.qualityProfiles().insert(org2, p -> p.setLanguage(A_LANGUAGE));
-
- TestRequest request = tester.newRequest()
- .setParam("organization", org2.getKey())
- .setParam("language", profileInOrg1.getLanguage())
- .setParam("qualityProfile", profileInOrg1.getName());
-
- assertThatThrownBy(request::execute)
- .isInstanceOf(NotFoundException.class)
- .hasMessage("Quality Profile for language 'xoo' and name '" + profileInOrg1.getName() + "' does not exist in organization '" + org2.getKey() + "'");
- }
-
- @Test
public void throws_IAE_if_profile_reference_is_not_set() {
TestRequest request = tester.newRequest();
@@ -167,22 +88,6 @@ public class BackupActionTest {
}
@Test
- public void fail_on_paid_organization_when_not_member() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE));
- userSession.logIn();
-
- TestRequest request = tester.newRequest()
- .setParam("organization", organization.getKey())
- .setParam("language", profile.getLanguage())
- .setParam("qualityProfile", profile.getName());
-
- assertThatThrownBy(request::execute)
- .isInstanceOf(ForbiddenException.class)
- .hasMessage(format("You're not member of organization '%s'", organization.getKey()));
- }
-
- @Test
public void test_definition() {
WebService.Action definition = tester.getDef();
@@ -192,11 +97,9 @@ public class BackupActionTest {
assertThat(definition.isPost()).isFalse();
// parameters
- assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("organization", "qualityProfile", "language");
+ assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("qualityProfile", "language");
Param language = definition.param("language");
assertThat(language.deprecatedSince()).isNullOrEmpty();
- Param orgParam = definition.param("organization");
- assertThat(orgParam.since()).isEqualTo("6.4");
}
private static String xmlForProfileWithoutRules(QProfileDto profile) {
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ChangeParentActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ChangeParentActionTest.java
index 49e5e52cade..6521e78b8f7 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ChangeParentActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ChangeParentActionTest.java
@@ -90,7 +90,7 @@ public class ChangeParentActionTest {
private RuleIndexer ruleIndexer;
private ActiveRuleIndexer activeRuleIndexer;
private WsActionTester ws;
- private OrganizationDto organization;
+ private OrganizationDto defaultOrganization;
private Language language = LanguageTesting.newLanguage(randomAlphanumeric(20));
private String ruleRepository = randomAlphanumeric(5);
private QProfileTreeImpl qProfileTree;
@@ -117,8 +117,8 @@ public class ChangeParentActionTest {
userSession);
ws = new WsActionTester(underTest);
- organization = db.organizations().insert();
- userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization.getUuid());
+ defaultOrganization = db.getDefaultOrganization();
+ userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganization.getUuid());
}
@Test
@@ -126,8 +126,7 @@ public class ChangeParentActionTest {
WebService.Action definition = ws.getDef();
assertThat(definition.isPost()).isTrue();
assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder(
- "organization", "qualityProfile", "language", "parentQualityProfile");
- assertThat(definition.param("organization").since()).isEqualTo("6.4");
+ "qualityProfile", "language", "parentQualityProfile");
}
@Test
@@ -145,7 +144,7 @@ public class ChangeParentActionTest {
// Set parent
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
+ .setParam(PARAM_ORGANIZATION, defaultOrganization.getKey())
.setParam(PARAM_LANGUAGE, child.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, child.getName())
.setParam(PARAM_PARENT_QUALITY_PROFILE, parent1.getName())
@@ -178,7 +177,7 @@ public class ChangeParentActionTest {
// Set parent 2 through WS
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
+ .setParam(PARAM_ORGANIZATION, defaultOrganization.getKey())
.setParam(PARAM_LANGUAGE, child.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, child.getName())
.setParam(PARAM_PARENT_QUALITY_PROFILE, parent2.getName())
@@ -208,7 +207,7 @@ public class ChangeParentActionTest {
// Remove parent through WS
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
+ .setParam(PARAM_ORGANIZATION, defaultOrganization.getKey())
.setParam(PARAM_LANGUAGE, child.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, child.getName())
.execute();
@@ -234,15 +233,15 @@ public class ChangeParentActionTest {
assertThat(dbClient.activeRuleDao().selectByProfileUuid(dbSession, child.getKee())).isEmpty();
- System.out.println("org uuid: " + organization.getUuid());
- System.out.println("org key: " + organization.getKey());
+ System.out.println("org uuid: " + defaultOrganization.getUuid());
+ System.out.println("org key: " + defaultOrganization.getKey());
// 1. Set parent 1
ws.newRequest()
.setMethod("POST")
.setParam(PARAM_LANGUAGE, child.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, child.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
+ .setParam(PARAM_ORGANIZATION, defaultOrganization.getKey())
.setParam(PARAM_PARENT_QUALITY_PROFILE, parent1.getName())
.execute();
@@ -257,7 +256,7 @@ public class ChangeParentActionTest {
.setMethod("POST")
.setParam(PARAM_LANGUAGE, child.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, child.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
+ .setParam(PARAM_ORGANIZATION, defaultOrganization.getKey())
.setParam(QualityProfileWsParameters.PARAM_PARENT_QUALITY_PROFILE, parent2.getName())
.execute();
@@ -271,7 +270,7 @@ public class ChangeParentActionTest {
.setMethod("POST")
.setParam(PARAM_LANGUAGE, child.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, child.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
+ .setParam(PARAM_ORGANIZATION, defaultOrganization.getKey())
.setParam(QualityProfileWsParameters.PARAM_PARENT_QUALITY_PROFILE, "")
.execute();
@@ -299,7 +298,7 @@ public class ChangeParentActionTest {
// Remove parent
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
+ .setParam(PARAM_ORGANIZATION, defaultOrganization.getKey())
.setParam(PARAM_LANGUAGE, child.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, child.getName())
.setParam(PARAM_PARENT_QUALITY_PROFILE, "")
@@ -330,7 +329,7 @@ public class ChangeParentActionTest {
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
+ .setParam(PARAM_ORGANIZATION, defaultOrganization.getKey())
.setParam(PARAM_LANGUAGE, child.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, child.getName())
.setParam(PARAM_PARENT_QUALITY_PROFILE, parent2.getName())
@@ -345,7 +344,7 @@ public class ChangeParentActionTest {
@Test
public void fail_if_built_in_profile() {
- QProfileDto child = db.qualityProfiles().insert(organization, p -> p
+ QProfileDto child = db.qualityProfiles().insert(p -> p
.setLanguage(language.getKey())
.setIsBuiltIn(true));
@@ -354,7 +353,7 @@ public class ChangeParentActionTest {
TestRequest request = ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
+ .setParam(PARAM_ORGANIZATION, defaultOrganization.getKey())
.setParam(PARAM_LANGUAGE, child.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, child.getName())
.setParam(PARAM_PARENT_QUALITY_PROFILE, "palap");
@@ -372,25 +371,7 @@ public class ChangeParentActionTest {
TestRequest request = ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .setParam(PARAM_LANGUAGE, child.getLanguage())
- .setParam(PARAM_QUALITY_PROFILE, child.getName());
-
- expectedException.expect(ForbiddenException.class);
- expectedException.expectMessage("Insufficient privileges");
- request.execute();
- }
-
- @Test
- public void fail_if_missing_permission_for_this_organization() {
- OrganizationDto organization2 = db.organizations().insert();
- userSession.logIn(db.users().insertUser()).addPermission(ADMINISTER_QUALITY_PROFILES, organization2.getUuid());
-
- QProfileDto child = createProfile();
-
- TestRequest request = ws.newRequest()
- .setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
+ .setParam(PARAM_ORGANIZATION, defaultOrganization.getKey())
.setParam(PARAM_LANGUAGE, child.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, child.getName());
@@ -401,7 +382,6 @@ public class ChangeParentActionTest {
private QProfileDto createProfile() {
QProfileDto profile = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization.getUuid())
.setLanguage(language.getKey());
dbClient.qualityProfileDao().insert(dbSession, profile);
dbSession.commit();
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ChangelogActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ChangelogActionTest.java
index 8e0dba6bee0..3c38e5aeed5 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ChangelogActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ChangelogActionTest.java
@@ -33,25 +33,19 @@ import org.sonar.api.rule.RuleKey;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.utils.DateUtils;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileChangeDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.user.UserDto;
-import org.sonar.server.exceptions.ForbiddenException;
-import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.qualityprofile.ActiveRuleChange;
import org.sonar.server.qualityprofile.ActiveRuleInheritance;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsActionTester;
-import static java.lang.String.format;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.test.JsonAssert.assertJson;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_SINCE;
@@ -69,13 +63,11 @@ public class ChangelogActionTest {
public ExpectedException expectedException = ExpectedException.none();
private QProfileWsSupport wsSupport = new QProfileWsSupport(db.getDbClient(), userSession, TestDefaultOrganizationProvider.from(db));
- private WsActionTester ws = new WsActionTester(
- new ChangelogAction(wsSupport, new Languages(), db.getDbClient()));
+ private WsActionTester ws = new WsActionTester(new ChangelogAction(wsSupport, new Languages(), db.getDbClient()));
@Test
public void return_change_with_all_fields() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
UserDto user = db.users().insertUser();
RuleDefinitionDto rule = db.rules().insert(RuleKey.of("java", "S001"));
insertChange(profile, ActiveRuleChange.Type.ACTIVATED, user, ImmutableMap.of(
@@ -88,7 +80,6 @@ public class ChangelogActionTest {
String response = ws.newRequest()
.setParam(PARAM_LANGUAGE, profile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute()
.getInput();
@@ -116,8 +107,7 @@ public class ChangelogActionTest {
@Test
public void find_changelog_by_profile_key() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
RuleDefinitionDto rule = db.rules().insert();
UserDto user = db.users().insertUser();
insertChange(profile, ActiveRuleChange.Type.ACTIVATED, user,
@@ -128,7 +118,6 @@ public class ChangelogActionTest {
String response = ws.newRequest()
.setParam(PARAM_LANGUAGE, profile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute()
.getInput();
@@ -150,7 +139,7 @@ public class ChangelogActionTest {
@Test
public void find_changelog_by_language_and_name() {
- QProfileDto qualityProfile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
RuleDefinitionDto rule = db.rules().insert();
UserDto user = db.users().insertUser();
insertChange(qualityProfile, ActiveRuleChange.Type.ACTIVATED, user,
@@ -182,8 +171,7 @@ public class ChangelogActionTest {
@Test
public void find_changelog_by_organization_and_language_and_name() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
RuleDefinitionDto rule = db.rules().insert();
UserDto user = db.users().insertUser();
insertChange(qualityProfile, ActiveRuleChange.Type.ACTIVATED, user,
@@ -194,7 +182,6 @@ public class ChangelogActionTest {
String response = ws.newRequest()
.setParam(PARAM_LANGUAGE, qualityProfile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute()
.getInput();
@@ -216,13 +203,11 @@ public class ChangelogActionTest {
@Test
public void changelog_empty() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
String response = ws.newRequest()
.setParam(PARAM_LANGUAGE, qualityProfile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute()
.getInput();
@@ -231,8 +216,7 @@ public class ChangelogActionTest {
@Test
public void changelog_filter_by_since() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
system2.setNow(DateUtils.parseDateTime("2011-04-25T01:15:42+0100").getTime());
RuleDefinitionDto rule = db.rules().insert();
UserDto user = db.users().insertUser();
@@ -244,7 +228,6 @@ public class ChangelogActionTest {
assertJson(ws.newRequest()
.setParam(PARAM_LANGUAGE, qualityProfile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_SINCE, "2011-04-25T01:15:42+0100")
.execute()
.getInput()).isSimilarTo("{\n" +
@@ -262,7 +245,6 @@ public class ChangelogActionTest {
assertJson(ws.newRequest()
.setParam(PARAM_LANGUAGE, qualityProfile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_SINCE, "2011-04-25T01:15:43+0100")
.execute()
.getInput()).isSimilarTo("{\n" +
@@ -272,8 +254,7 @@ public class ChangelogActionTest {
@Test
public void sort_changelog_events_in_reverse_chronological_order() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
system2.setNow(DateUtils.parseDateTime("2011-04-25T01:15:42+0100").getTime());
RuleDefinitionDto rule1 = db.rules().insert();
insertChange(profile, ActiveRuleChange.Type.ACTIVATED, null,
@@ -289,7 +270,6 @@ public class ChangelogActionTest {
String response = ws.newRequest()
.setParam(PARAM_LANGUAGE, profile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute()
.getInput();
@@ -318,8 +298,7 @@ public class ChangelogActionTest {
@Test
public void changelog_on_no_more_existing_rule() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
UserDto user = db.users().insertUser();
insertChange(qualityProfile, ActiveRuleChange.Type.ACTIVATED, user,
ImmutableMap.of("ruleUuid", "123"));
@@ -327,7 +306,6 @@ public class ChangelogActionTest {
String response = ws.newRequest()
.setParam(PARAM_LANGUAGE, qualityProfile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute()
.getInput();
@@ -345,8 +323,7 @@ public class ChangelogActionTest {
@Test
public void changelog_on_no_more_existing_user() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
RuleDefinitionDto rule = db.rules().insert();
insertChange(c -> c.setRulesProfileUuid(qualityProfile.getRulesProfileUuid())
.setUserUuid("UNKNOWN")
@@ -356,7 +333,6 @@ public class ChangelogActionTest {
String response = ws.newRequest()
.setParam(PARAM_LANGUAGE, qualityProfile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute()
.getInput();
@@ -375,73 +351,8 @@ public class ChangelogActionTest {
}
@Test
- public void changelog_on_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- UserDto user = db.users().insertUser();
- userSession.logIn(user).addMembership(organization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- RuleDefinitionDto rule = db.rules().insert();
- insertChange(qualityProfile, ActiveRuleChange.Type.ACTIVATED, db.users().insertUser(),
- ImmutableMap.of(
- "ruleUuid", rule.getUuid(),
- "severity", "MINOR"));
-
- String response = ws.newRequest()
- .setParam(PARAM_LANGUAGE, qualityProfile.getLanguage())
- .setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute()
- .getInput();
-
- assertJson(response).isSimilarTo("{\n" +
- " \"events\": [\n" +
- " {\n" +
- " \"ruleKey\": \"" + rule.getKey() + "\",\n" +
- " }\n" +
- " ]\n" +
- "}");
- }
-
- @Test
- public void do_not_find_changelog_by_wrong_organization_and_language_and_name() {
- OrganizationDto organization1 = db.organizations().insert();
- OrganizationDto organization2 = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization1);
- RuleDefinitionDto rule = db.rules().insert();
- UserDto user = db.users().insertUser();
- insertChange(qualityProfile, ActiveRuleChange.Type.ACTIVATED, user,
- ImmutableMap.of(
- "ruleUuid", rule.getUuid(),
- "severity", "MINOR"));
-
- expectedException.expect(NotFoundException.class);
-
- ws.newRequest()
- .setParam(PARAM_LANGUAGE, qualityProfile.getLanguage())
- .setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_ORGANIZATION, organization2.getKey())
- .execute();
- }
-
- @Test
- public void fail_on_paid_organization_when_not_member() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
-
- expectedException.expect(ForbiddenException.class);
- expectedException.expectMessage(format("You're not member of organization '%s'", organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_LANGUAGE, qualityProfile.getLanguage())
- .setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute();
- }
-
- @Test
public void example() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
String profileUuid = profile.getRulesProfileUuid();
system2.setNow(DateUtils.parseDateTime("2015-02-23T17:58:39+0100").getTime());
@@ -472,7 +383,6 @@ public class ChangelogActionTest {
.setMethod("GET")
.setParam(PARAM_LANGUAGE, profile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam("ps", "10")
.execute()
.getInput();
@@ -487,7 +397,7 @@ public class ChangelogActionTest {
assertThat(definition.isPost()).isFalse();
assertThat(definition.responseExampleAsString()).isNotEmpty();
assertThat(definition.params()).extracting(WebService.Param::key)
- .containsExactlyInAnyOrder("qualityProfile", "language", "organization", "since", "to", "p", "ps");
+ .containsExactlyInAnyOrder("qualityProfile", "language", "since", "to", "p", "ps");
WebService.Param profileName = definition.param("qualityProfile");
assertThat(profileName.deprecatedSince()).isNullOrEmpty();
WebService.Param language = definition.param("language");
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CompareActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CompareActionTest.java
index 00f8baabc10..a9011d95c0c 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CompareActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CompareActionTest.java
@@ -33,28 +33,22 @@ import org.sonar.core.util.Uuids;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleDto;
import org.sonar.db.qualityprofile.ActiveRuleParamDto;
import org.sonar.db.qualityprofile.QProfileDto;
-import org.sonar.db.qualityprofile.QualityProfileTesting;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleDto.Scope;
import org.sonar.db.rule.RuleParamDto;
import org.sonar.db.rule.RuleRepositoryDto;
-import org.sonar.db.user.UserDto;
-import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.language.LanguageTesting;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.qualityprofile.QProfileComparison;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsActionTester;
-import static java.lang.String.format;
import static java.util.Collections.singletonList;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
public class CompareActionTest {
@@ -149,20 +143,6 @@ public class CompareActionTest {
.execute().assertJson(this.getClass(), "compare_param_on_right.json");
}
- @Test
- public void do_not_fail_to_compare_on_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto left = db.qualityProfiles().insert(organization);
- QProfileDto right = db.qualityProfiles().insert(organization);
- UserDto user = db.users().insertUser();
- userSession.logIn(user).addMembership(organization);
-
- ws.newRequest()
- .setParam("leftKey", left.getKee())
- .setParam("rightKey", right.getKee())
- .execute();
- }
-
@Test(expected = IllegalArgumentException.class)
public void fail_on_missing_left_param() {
ws.newRequest()
@@ -196,36 +176,6 @@ public class CompareActionTest {
}
@Test
- public void fail_to_compare_quality_profiles_from_different_organizations() {
- QProfileDto left = QualityProfileTesting.newQualityProfileDto();
- QProfileDto right = QualityProfileTesting.newQualityProfileDto();
- db.qualityProfiles().insert(left, right);
-
- expectedException.expect(IllegalArgumentException.class);
- expectedException.expectMessage("Cannot compare quality profiles of different organizations.");
-
- ws.newRequest()
- .setParam("leftKey", left.getKee())
- .setParam("rightKey", right.getKee())
- .execute();
- }
-
- @Test
- public void fail_on_paid_organization_when_not_member() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto left = db.qualityProfiles().insert(organization);
- QProfileDto right = db.qualityProfiles().insert(organization);
-
- expectedException.expect(ForbiddenException.class);
- expectedException.expectMessage(format("You're not member of organization '%s'", organization.getKey()));
-
- ws.newRequest()
- .setParam("leftKey", left.getKee())
- .setParam("rightKey", right.getKee())
- .execute();
- }
-
- @Test
public void definition() {
WebService.Action definition = ws.getDef();
assertThat(definition).isNotNull();
@@ -237,7 +187,7 @@ public class CompareActionTest {
}
private QProfileDto createProfile(String lang, String name, String key) {
- return db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setKee(key).setName(name).setLanguage(lang));
+ return db.qualityProfiles().insert(p -> p.setKee(key).setName(name).setLanguage(lang));
}
private RuleDefinitionDto createRule(String lang, String id) {
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CopyActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CopyActionTest.java
index da2a564e386..9b5849c2362 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CopyActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CopyActionTest.java
@@ -68,10 +68,10 @@ public class CopyActionTest {
@Rule
public JUnitTempFolder tempDir = new JUnitTempFolder();
private ActiveRuleIndexer activeRuleIndexer = mock(ActiveRuleIndexer.class);
- private QProfileFactory profileFactory = new QProfileFactoryImpl(db.getDbClient(), new SequenceUuidFactory(), System2.INSTANCE, activeRuleIndexer);
private TestBackuper backuper = new TestBackuper();
- private QProfileCopier profileCopier = new QProfileCopier(db.getDbClient(), profileFactory, backuper);
private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
+ private QProfileFactory profileFactory = new QProfileFactoryImpl(db.getDbClient(), new SequenceUuidFactory(), System2.INSTANCE, activeRuleIndexer);
+ private QProfileCopier profileCopier = new QProfileCopier(db.getDbClient(), profileFactory, backuper);
private Languages languages = LanguageTesting.newLanguages(A_LANGUAGE);
private QProfileWsSupport wsSupport = new QProfileWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider);
private CopyAction underTest = new CopyAction(db.getDbClient(), profileCopier, languages, userSession, wsSupport);
@@ -94,10 +94,10 @@ public class CopyActionTest {
@Test
public void example() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
logInAsQProfileAdministrator(organization);
- QProfileDto parent = db.qualityProfiles().insert(organization, p -> p.setKee("AU-TpxcA-iU5OvuD2FL2"));
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setKee("old")
+ QProfileDto parent = db.qualityProfiles().insert(p -> p.setKee("AU-TpxcA-iU5OvuD2FL2"));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setKee("old")
.setLanguage("Java")
.setParentKee(parent.getKee()));
String profileUuid = profile.getRulesProfileUuid();
@@ -114,10 +114,10 @@ public class CopyActionTest {
@Test
public void create_profile_with_specified_name_and_copy_rules_from_source_profile() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
logInAsQProfileAdministrator(organization);
- QProfileDto sourceProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE));
+ QProfileDto sourceProfile = db.qualityProfiles().insert(p -> p.setLanguage(A_LANGUAGE));
TestResponse response = tester.newRequest()
.setMethod("POST")
.setParam("fromKey", sourceProfile.getKee())
@@ -133,12 +133,11 @@ public class CopyActionTest {
" \"isDefault\": false," +
" \"isInherited\": false" +
"}");
- QProfileDto loadedProfile = db.getDbClient().qualityProfileDao().selectByNameAndLanguage(db.getSession(), organization, "target-name", sourceProfile.getLanguage());
+ QProfileDto loadedProfile = db.getDbClient().qualityProfileDao().selectByNameAndLanguage(db.getSession(), "target-name", sourceProfile.getLanguage());
assertThat(loadedProfile.getKee()).isEqualTo(generatedUuid);
assertThat(loadedProfile.getParentKee()).isNull();
assertThat(backuper.copiedProfile.getKee()).isEqualTo(sourceProfile.getKee());
- assertThat(backuper.toProfile.getOrganizationUuid()).isEqualTo(sourceProfile.getOrganizationUuid());
assertThat(backuper.toProfile.getLanguage()).isEqualTo(sourceProfile.getLanguage());
assertThat(backuper.toProfile.getName()).isEqualTo("target-name");
assertThat(backuper.toProfile.getKee()).isEqualTo(generatedUuid);
@@ -147,10 +146,10 @@ public class CopyActionTest {
@Test
public void copy_rules_on_existing_profile_in_default_organization() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
logInAsQProfileAdministrator(organization);
- QProfileDto sourceProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE));
- QProfileDto targetProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE));
+ QProfileDto sourceProfile = db.qualityProfiles().insert(p -> p.setLanguage(A_LANGUAGE));
+ QProfileDto targetProfile = db.qualityProfiles().insert(p -> p.setLanguage(A_LANGUAGE));
TestResponse response = tester.newRequest()
.setMethod("POST")
@@ -175,11 +174,11 @@ public class CopyActionTest {
@Test
public void create_profile_with_same_parent_as_source_profile() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
logInAsQProfileAdministrator(organization);
- QProfileDto parentProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE));
- QProfileDto sourceProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE).setParentKee(parentProfile.getKee()));
+ QProfileDto parentProfile = db.qualityProfiles().insert(p -> p.setLanguage(A_LANGUAGE));
+ QProfileDto sourceProfile = db.qualityProfiles().insert(p -> p.setLanguage(A_LANGUAGE).setParentKee(parentProfile.getKee()));
TestResponse response = tester.newRequest()
.setMethod("POST")
@@ -196,12 +195,11 @@ public class CopyActionTest {
" \"isDefault\": false," +
" \"isInherited\": true" +
"}");
- QProfileDto loadedProfile = db.getDbClient().qualityProfileDao().selectByNameAndLanguage(db.getSession(), organization, "target-name", sourceProfile.getLanguage());
+ QProfileDto loadedProfile = db.getDbClient().qualityProfileDao().selectByNameAndLanguage(db.getSession(), "target-name", sourceProfile.getLanguage());
assertThat(loadedProfile.getKee()).isEqualTo(generatedUuid);
assertThat(loadedProfile.getParentKee()).isEqualTo(parentProfile.getKee());
assertThat(backuper.copiedProfile.getKee()).isEqualTo(sourceProfile.getKee());
- assertThat(backuper.toProfile.getOrganizationUuid()).isEqualTo(sourceProfile.getOrganizationUuid());
assertThat(backuper.toProfile.getLanguage()).isEqualTo(sourceProfile.getLanguage());
assertThat(backuper.toProfile.getName()).isEqualTo("target-name");
assertThat(backuper.toProfile.getKee()).isEqualTo(generatedUuid);
@@ -224,8 +222,8 @@ public class CopyActionTest {
@Test
public void throw_ForbiddenException_if_not_profile_administrator_of_organization() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(A_LANGUAGE));
userSession.logIn().addPermission(OrganizationPermission.SCAN, organization);
expectedException.expect(ForbiddenException.class);
@@ -240,8 +238,8 @@ public class CopyActionTest {
@Test
public void throw_ForbiddenException_if_not_profile_administrator() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(A_LANGUAGE));
userSession.logIn().addPermission(OrganizationPermission.SCAN, organization);
expectedException.expect(ForbiddenException.class);
@@ -256,7 +254,7 @@ public class CopyActionTest {
@Test
public void fail_if_parameter_fromKey_is_missing() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
logInAsQProfileAdministrator(organization);
expectedException.expect(IllegalArgumentException.class);
@@ -269,7 +267,7 @@ public class CopyActionTest {
@Test
public void fail_if_parameter_toName_is_missing() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
logInAsQProfileAdministrator(organization);
expectedException.expect(IllegalArgumentException.class);
@@ -297,7 +295,7 @@ public class CopyActionTest {
}
@Override
- public QProfileRestoreSummary restore(DbSession dbSession, Reader backup, OrganizationDto organization, @Nullable String overriddenProfileName) {
+ public QProfileRestoreSummary restore(DbSession dbSession, Reader backup, @Nullable String overriddenProfileName) {
throw new UnsupportedOperationException();
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CreateActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CreateActionTest.java
index 5ae62daf598..15ef23dc823 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CreateActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/CreateActionTest.java
@@ -44,7 +44,6 @@ import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleTesting;
import org.sonar.server.es.EsTester;
import org.sonar.server.exceptions.BadRequestException;
-import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.qualityprofile.QProfileExporters;
@@ -106,7 +105,7 @@ public class CreateActionTest {
@Before
public void setUp() {
- organization = db.organizations().insert();
+ organization = db.organizations().getDefaultOrganization();
}
@Test
@@ -116,7 +115,7 @@ public class CreateActionTest {
assertThat(definition.responseExampleAsString()).isNotEmpty();
assertThat(definition.isPost()).isTrue();
assertThat(definition.params()).extracting(Param::key)
- .containsExactlyInAnyOrder("language", "organization", "name", "backup_with_messages", "backup_with_errors", "backup_xoo_lint");
+ .containsExactlyInAnyOrder("language", "name", "backup_with_messages", "backup_with_errors", "backup_xoo_lint");
}
@Test
@@ -125,7 +124,7 @@ public class CreateActionTest {
CreateWsResponse response = executeRequest("New Profile", XOO_LANGUAGE);
- QProfileDto dto = dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, organization, "New Profile", XOO_LANGUAGE);
+ QProfileDto dto = dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, "New Profile", XOO_LANGUAGE);
assertThat(dto.getKee()).isNotNull();
assertThat(dto.getLanguage()).isEqualTo(XOO_LANGUAGE);
assertThat(dto.getName()).isEqualTo("New Profile");
@@ -147,7 +146,7 @@ public class CreateActionTest {
executeRequest("New Profile", XOO_LANGUAGE, ImmutableMap.of("xoo_lint", "<xml/>"));
- QProfileDto dto = dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, organization, "New Profile", XOO_LANGUAGE);
+ QProfileDto dto = dbClient.qualityProfileDao().selectByNameAndLanguage(dbSession, "New Profile", XOO_LANGUAGE);
assertThat(dto.getKee()).isNotNull();
assertThat(dbClient.activeRuleDao().selectByProfileUuid(dbSession, dto.getKee())).hasSize(1);
assertThat(ruleIndex.searchAll(new RuleQuery().setQProfile(dto).setActivation(true))).toIterable().hasSize(1);
@@ -165,63 +164,6 @@ public class CreateActionTest {
}
@Test
- public void create_profile_for_specific_organization() {
- logInAsQProfileAdministrator();
-
- String orgKey = organization.getKey();
-
- TestRequest request = ws.newRequest()
- .setParam("organization", orgKey)
- .setParam("name", "Profile with messages")
- .setParam("language", XOO_LANGUAGE)
- .setParam("backup_with_messages", "<xml/>");
-
- assertThat(executeRequest(request).getProfile().getOrganization())
- .isEqualTo(orgKey);
- }
-
- @Test
- public void create_two_qprofiles_in_different_organizations_with_same_name_and_language() {
-
- // this name will be used twice
- String profileName = "Profile123";
-
- OrganizationDto organization1 = db.organizations().insert();
- logInAsQProfileAdministrator(organization1);
- TestRequest request1 = ws.newRequest()
- .setParam("organization", organization1.getKey())
- .setParam("name", profileName)
- .setParam("language", XOO_LANGUAGE);
- assertThat(executeRequest(request1).getProfile().getOrganization())
- .isEqualTo(organization1.getKey());
-
- OrganizationDto organization2 = db.organizations().insert();
- logInAsQProfileAdministrator(organization2);
- TestRequest request2 = ws.newRequest()
- .setParam("organization", organization2.getKey())
- .setParam("name", profileName)
- .setParam("language", XOO_LANGUAGE);
- assertThat(executeRequest(request2).getProfile().getOrganization())
- .isEqualTo(organization2.getKey());
- }
-
- @Test
- public void fail_if_unsufficient_privileges() {
- OrganizationDto organizationX = db.organizations().insert();
- OrganizationDto organizationY = db.organizations().insert();
-
- logInAsQProfileAdministrator(organizationX);
-
- expectedException.expect(ForbiddenException.class);
- expectedException.expectMessage("Insufficient privileges");
-
- executeRequest(ws.newRequest()
- .setParam("organization", organizationY.getKey())
- .setParam("name", "some Name")
- .setParam("language", XOO_LANGUAGE));
- }
-
- @Test
public void fail_if_import_generate_error() {
logInAsQProfileAdministrator();
@@ -256,7 +198,6 @@ public class CreateActionTest {
private CreateWsResponse executeRequest(String name, String language, Map<String, String> xmls) {
TestRequest request = ws.newRequest()
- .setParam("organization", organization.getKey())
.setParam("name", name)
.setParam("language", language);
for (Map.Entry<String, String> entry : xmls.entrySet()) {
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRuleActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRuleActionTest.java
index a9ce0bf03bc..e7c25c7cd69 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRuleActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRuleActionTest.java
@@ -39,7 +39,6 @@ import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleTesting;
import org.sonar.db.user.UserDto;
import org.sonar.server.exceptions.BadRequestException;
-import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.qualityprofile.QProfileRules;
@@ -56,7 +55,6 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.UUID_SIZE;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_KEY;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_RULE;
public class DeactivateRuleActionTest {
@@ -74,13 +72,11 @@ public class DeactivateRuleActionTest {
private DeactivateRuleAction underTest = new DeactivateRuleAction(dbClient, qProfileRules, userSession, wsSupport);
private WsActionTester ws = new WsActionTester(underTest);
private OrganizationDto defaultOrganization;
- private OrganizationDto organization;
@Before
public void before() {
MockitoAnnotations.initMocks(this);
defaultOrganization = db.getDefaultOrganization();
- organization = db.organizations().insert();
}
@Test
@@ -94,7 +90,7 @@ public class DeactivateRuleActionTest {
@Test
public void deactivate_rule_in_default_organization() {
userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, defaultOrganization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(defaultOrganization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
RuleDefinitionDto rule = db.rules().insert(RuleTesting.randomRuleKey());
TestRequest request = ws.newRequest()
.setMethod("POST")
@@ -111,29 +107,9 @@ public class DeactivateRuleActionTest {
}
@Test
- public void deactivate_rule_in_specific_organization() {
- userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- RuleDefinitionDto rule = db.rules().insert(RuleTesting.randomRuleKey());
- TestRequest request = ws.newRequest()
- .setMethod("POST")
- .setParam("organization", organization.getKey())
- .setParam(PARAM_RULE, rule.getKey().toString())
- .setParam(PARAM_KEY, qualityProfile.getKee());
-
- TestResponse response = request.execute();
-
- assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT);
- ArgumentCaptor<QProfileDto> qProfileDtoCaptor = ArgumentCaptor.forClass(QProfileDto.class);
- verify(qProfileRules).deactivateAndCommit(any(DbSession.class), qProfileDtoCaptor.capture(), ruleUuidsCaptor.capture());
- assertThat(ruleUuidsCaptor.getValue()).containsExactly(rule.getUuid());
- assertThat(qProfileDtoCaptor.getValue().getKee()).isEqualTo(qualityProfile.getKee());
- }
-
- @Test
public void as_qprofile_editor() {
UserDto user = db.users().insertUser();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
db.qualityProfiles().addUserPermission(qualityProfile, user);
userSession.logIn(user);
RuleKey ruleKey = RuleTesting.randomRuleKey();
@@ -141,7 +117,6 @@ public class DeactivateRuleActionTest {
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_RULE, ruleKey.toString())
.setParam(PARAM_KEY, qualityProfile.getKee())
.execute();
@@ -162,24 +137,9 @@ public class DeactivateRuleActionTest {
}
@Test
- public void fail_if_not_organization_quality_profile_administrator() {
- RuleDefinitionDto rule = db.rules().insert();
- userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, defaultOrganization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- TestRequest request = ws.newRequest()
- .setMethod("POST")
- .setParam(PARAM_RULE, rule.getKey().toString())
- .setParam(PARAM_KEY, qualityProfile.getKee());
-
- expectedException.expect(ForbiddenException.class);
-
- request.execute();
- }
-
- @Test
public void fail_activate_external_rule() {
userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, defaultOrganization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(defaultOrganization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
RuleDefinitionDto rule = db.rules().insert(r -> r.setIsExternal(true));
TestRequest request = ws.newRequest()
@@ -198,7 +158,7 @@ public class DeactivateRuleActionTest {
RuleDefinitionDto rule = db.rules().insert();
userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, defaultOrganization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(defaultOrganization, profile -> profile.setIsBuiltIn(true));
+ QProfileDto qualityProfile = db.qualityProfiles().insert(profile -> profile.setIsBuiltIn(true));
TestRequest request = ws.newRequest()
.setMethod("POST")
.setParam(PARAM_RULE, rule.getKey().toString())
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRulesActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRulesActionTest.java
index fa2d2b2639a..815640359c0 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRulesActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeactivateRulesActionTest.java
@@ -31,7 +31,6 @@ import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.exceptions.BadRequestException;
-import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.qualityprofile.QProfileRules;
@@ -48,7 +47,6 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.UUID_SIZE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_TARGET_KEY;
public class DeactivateRulesActionTest {
@@ -67,12 +65,10 @@ public class DeactivateRulesActionTest {
private DeactivateRulesAction underTest = new DeactivateRulesAction(ruleQueryFactory, userSession, qProfileRules, wsSupport, dbClient);
private WsActionTester ws = new WsActionTester(underTest);
private OrganizationDto defaultOrganization;
- private OrganizationDto organization;
@Before
public void before() {
defaultOrganization = db.getDefaultOrganization();
- organization = db.organizations().insert();
}
@Test
@@ -100,7 +96,6 @@ public class DeactivateRulesActionTest {
"available_since",
"activation",
"severities",
- "organization",
"cwe",
"owaspTop10",
"sansTop25",
@@ -110,12 +105,11 @@ public class DeactivateRulesActionTest {
@Test
public void as_global_admin() {
UserDto user = db.users().insertUser();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- userSession.logIn(user).addPermission(ADMINISTER_QUALITY_PROFILES, organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
+ userSession.logIn(user).addPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganization);
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_TARGET_KEY, qualityProfile.getKee())
.execute();
@@ -125,15 +119,14 @@ public class DeactivateRulesActionTest {
@Test
public void as_qprofile_editor() {
UserDto user = db.users().insertUser();
- GroupDto group = db.users().insertGroup(organization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- db.organizations().addMember(organization, user);
+ GroupDto group = db.users().insertGroup(defaultOrganization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
+ db.organizations().addMember(defaultOrganization, user);
db.qualityProfiles().addGroupPermission(qualityProfile, group);
userSession.logIn(user).setGroups(group);
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_TARGET_KEY, qualityProfile.getKee())
.execute();
@@ -153,7 +146,7 @@ public class DeactivateRulesActionTest {
@Test
public void fail_if_built_in_profile() {
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(defaultOrganization, p -> p.setIsBuiltIn(true));
+ QProfileDto qualityProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true));
TestRequest request = ws.newRequest()
.setMethod("POST")
.setParam(PARAM_TARGET_KEY, qualityProfile.getKee());
@@ -162,16 +155,4 @@ public class DeactivateRulesActionTest {
request.execute();
}
-
- @Test
- public void fail_if_not_organization_quality_profile_administrator() {
- userSession.logIn(db.users().insertUser()).addPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- TestRequest request = ws.newRequest()
- .setMethod("POST")
- .setParam(PARAM_TARGET_KEY, qualityProfile.getKee());
-
- thrown.expect(ForbiddenException.class);
- request.execute();
- }
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeleteActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeleteActionTest.java
index b3b4ac5a834..ded6c99a934 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeleteActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/DeleteActionTest.java
@@ -31,7 +31,6 @@ import org.sonar.core.util.UuidFactoryFast;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.user.UserDto;
@@ -52,7 +51,6 @@ import static org.mockito.Mockito.mock;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_KEY;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class DeleteActionTest {
@@ -78,13 +76,12 @@ public class DeleteActionTest {
@Test
public void delete_profile_by_language_and_name_in_default_organization() {
- OrganizationDto organization = db.getDefaultOrganization();
- ProjectDto project = db.components().insertPrivateProjectDto(organization);
- QProfileDto profile1 = createProfile(organization);
- QProfileDto profile2 = createProfile(organization);
+ ProjectDto project = db.components().insertPrivateProjectDto();
+ QProfileDto profile1 = createProfile();
+ QProfileDto profile2 = createProfile();
db.qualityProfiles().associateWithProject(project, profile1);
- logInAsQProfileAdministrator(organization);
+ logInAsQProfileAdministrator();
TestResponse response = ws.newRequest()
.setMethod("POST")
@@ -94,61 +91,55 @@ public class DeleteActionTest {
assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT);
- verifyProfileDoesNotExist(profile1, organization);
+ verifyProfileDoesNotExist(profile1);
verifyProfileExists(profile2);
}
@Test
public void delete_profile_by_language_and_name_in_specified_organization() {
- OrganizationDto organization = db.organizations().insert();
- ProjectDto project = db.components().insertPrivateProjectDto(organization);
- QProfileDto profile1 = createProfile(organization);
- QProfileDto profile2 = createProfile(organization);
+ ProjectDto project = db.components().insertPrivateProjectDto();
+ QProfileDto profile1 = createProfile();
+ QProfileDto profile2 = createProfile();
db.qualityProfiles().associateWithProject(project, profile1);
- logInAsQProfileAdministrator(organization);
+ logInAsQProfileAdministrator();
TestResponse response = ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_LANGUAGE, profile1.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, profile1.getName())
.execute();
assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT);
- verifyProfileDoesNotExist(profile1, organization);
+ verifyProfileDoesNotExist(profile1);
verifyProfileExists(profile2);
}
@Test
public void as_qprofile_editor() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = createProfile(organization);
+ QProfileDto profile = createProfile();
UserDto user = db.users().insertUser();
db.qualityProfiles().addUserPermission(profile, user);
userSession.logIn(user);
TestResponse response = ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_LANGUAGE, profile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.execute();
assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT);
- verifyProfileDoesNotExist(profile, organization);
+ verifyProfileDoesNotExist(profile);
}
@Test
public void fail_if_built_in_profile() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile1 = db.qualityProfiles().insert(organization, p -> p.setIsBuiltIn(true).setLanguage(A_LANGUAGE));
- logInAsQProfileAdministrator(organization);
+ QProfileDto profile1 = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true).setLanguage(A_LANGUAGE));
+ logInAsQProfileAdministrator();
expectedException.expect(BadRequestException.class);
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_LANGUAGE, profile1.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, profile1.getName())
.execute();
@@ -156,8 +147,7 @@ public class DeleteActionTest {
@Test
public void fail_if_not_profile_administrator() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qprofile = createProfile(organization);
+ QProfileDto qprofile = createProfile();
userSession.logIn(db.users().insertUser());
expectedException.expect(ForbiddenException.class);
@@ -165,7 +155,6 @@ public class DeleteActionTest {
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_LANGUAGE, qprofile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, qprofile.getName())
.execute();
@@ -173,7 +162,7 @@ public class DeleteActionTest {
@Test
public void fail_if_not_logged_in() {
- QProfileDto profile = createProfile(db.getDefaultOrganization());
+ QProfileDto profile = createProfile();
expectedException.expect(UnauthorizedException.class);
@@ -197,32 +186,28 @@ public class DeleteActionTest {
@Test
public void fail_if_missing_language_parameter() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = createProfile(organization);
- logInAsQProfileAdministrator(organization);
+ QProfileDto profile = createProfile();
+ logInAsQProfileAdministrator();
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The 'language' parameter is missing");
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam("profileName", profile.getName())
.execute();
}
@Test
public void fail_if_missing_name_parameter() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = createProfile(organization);
- logInAsQProfileAdministrator(organization);
+ QProfileDto profile = createProfile();
+ logInAsQProfileAdministrator();
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The 'qualityProfile' parameter is missing");
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_LANGUAGE, profile.getLanguage())
.execute();
}
@@ -243,17 +228,15 @@ public class DeleteActionTest {
@Test
public void fail_if_deleting_default_profile() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = createProfile(organization);
+ QProfileDto profile = createProfile();
db.qualityProfiles().setAsDefault(profile);
- logInAsQProfileAdministrator(organization);
+ logInAsQProfileAdministrator();
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Profile '" + profile.getName() + "' cannot be deleted because it is marked as default");
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_LANGUAGE, profile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.execute();
@@ -261,11 +244,10 @@ public class DeleteActionTest {
@Test
public void fail_if_a_descendant_is_marked_as_default() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto parentProfile = createProfile(organization);
- QProfileDto childProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE).setParentKee(parentProfile.getKee()));
+ QProfileDto parentProfile = createProfile();
+ QProfileDto childProfile = db.qualityProfiles().insert(p -> p.setLanguage(A_LANGUAGE).setParentKee(parentProfile.getKee()));
db.qualityProfiles().setAsDefault(childProfile);
- logInAsQProfileAdministrator(organization);
+ logInAsQProfileAdministrator();
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Profile '" + parentProfile.getName() + "' cannot be deleted because its descendant named '" + childProfile.getName() +
@@ -273,7 +255,6 @@ public class DeleteActionTest {
ws.newRequest()
.setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_LANGUAGE, parentProfile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, parentProfile.getName())
.execute();
@@ -284,25 +265,25 @@ public class DeleteActionTest {
WebService.Action definition = ws.getDef();
assertThat(definition.isPost()).isTrue();
- assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("language", "organization", "qualityProfile");
+ assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("language", "qualityProfile");
}
- private void logInAsQProfileAdministrator(OrganizationDto organization) {
+ private void logInAsQProfileAdministrator() {
userSession
.logIn(db.users().insertUser())
- .addPermission(ADMINISTER_QUALITY_PROFILES, organization);
+ .addPermission(ADMINISTER_QUALITY_PROFILES, db.getDefaultOrganization());
}
- private void verifyProfileDoesNotExist(QProfileDto profile, OrganizationDto organization) {
+ private void verifyProfileDoesNotExist(QProfileDto profile) {
assertThat(dbClient.qualityProfileDao().selectByUuid(dbSession, profile.getKee())).isNull();
- assertThat(dbClient.qualityProfileDao().selectSelectedProjects(dbSession, organization, profile, null)).isEmpty();
+ assertThat(dbClient.qualityProfileDao().selectSelectedProjects(dbSession, profile, null)).isEmpty();
}
private void verifyProfileExists(QProfileDto profile) {
assertThat(dbClient.qualityProfileDao().selectByUuid(dbSession, profile.getKee())).isNotNull();
}
- private QProfileDto createProfile(OrganizationDto organization) {
- return db.qualityProfiles().insert(organization, p -> p.setLanguage(A_LANGUAGE));
+ private QProfileDto createProfile() {
+ return db.qualityProfiles().insert(p -> p.setLanguage(A_LANGUAGE));
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ExportActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ExportActionTest.java
index 04f4b069e98..fed422560c5 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ExportActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ExportActionTest.java
@@ -34,13 +34,9 @@ import org.sonar.api.utils.System2;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
-import org.sonar.db.user.UserDto;
-import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.language.LanguageTesting;
-import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.qualityprofile.QProfileBackuper;
import org.sonar.server.qualityprofile.QProfileExporters;
import org.sonar.server.qualityprofile.QProfileRestoreSummary;
@@ -49,10 +45,6 @@ import org.sonar.server.ws.WsActionTester;
import static java.lang.String.format;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class ExportActionTest {
@@ -68,11 +60,10 @@ public class ExportActionTest {
private DbClient dbClient = db.getDbClient();
private QProfileBackuper backuper = new TestBackuper();
- private QProfileWsSupport wsSupport = new QProfileWsSupport(dbClient, userSession, TestDefaultOrganizationProvider.from(db));
@Test
public void export_profile_in_default_organization() {
- QProfileDto profile = createProfile(db.getDefaultOrganization(), false);
+ QProfileDto profile = createProfile(false);
WsActionTester tester = newWsActionTester(newExporter("polop"), newExporter("palap"));
String result = tester.newRequest()
@@ -85,25 +76,9 @@ public class ExportActionTest {
}
@Test
- public void export_profile_in_specified_organization() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = createProfile(organization, false);
-
- WsActionTester tester = newWsActionTester(newExporter("polop"), newExporter("palap"));
- String result = tester.newRequest()
- .setParam("organization", organization.getKey())
- .setParam("language", profile.getLanguage())
- .setParam("qualityProfile", profile.getName())
- .setParam("exporterKey", "polop").execute()
- .getInput();
-
- assertThat(result).isEqualTo("Profile " + profile.getLanguage() + "/" + profile.getName() + " exported by polop");
- }
-
- @Test
public void export_default_profile() {
- QProfileDto nonDefaultProfile = createProfile(db.getDefaultOrganization(), false);
- QProfileDto defaultProfile = createProfile(db.getDefaultOrganization(), true);
+ QProfileDto nonDefaultProfile = createProfile(false);
+ QProfileDto defaultProfile = createProfile(true);
WsActionTester tester = newWsActionTester(newExporter("polop"), newExporter("palap"));
String result = tester.newRequest()
@@ -117,8 +92,7 @@ public class ExportActionTest {
@Test
public void return_backup_when_exporter_is_not_specified() {
- OrganizationDto organization = db.getDefaultOrganization();
- QProfileDto profile = createProfile(organization, false);
+ QProfileDto profile = createProfile(false);
String result = newWsActionTester(newExporter("polop")).newRequest()
.setParam("language", profile.getLanguage())
@@ -130,59 +104,6 @@ public class ExportActionTest {
}
@Test
- public void do_not_mismatch_profiles_with_other_organizations_and_languages() {
- OrganizationDto org1 = db.organizations().insert();
- OrganizationDto org2 = db.organizations().insert();
- QProfileDto defaultJavaInOrg1 = db.qualityProfiles().insert(org1, p -> p.setLanguage(JAVA_LANGUAGE).setName("Sonar Way"));
- QProfileDto nonDefaultJavaInOrg1 = db.qualityProfiles().insert(org1, p -> p.setLanguage(JAVA_LANGUAGE).setName("My Way"));
- QProfileDto defaultXooInOrg1 = db.qualityProfiles().insert(org1, p -> p.setLanguage(XOO_LANGUAGE).setName("Sonar Way"));
- QProfileDto nonDefaultXooInOrg1 = db.qualityProfiles().insert(org1, p -> p.setLanguage(XOO_LANGUAGE).setName("My Way"));
- QProfileDto defaultJavaInOrg2 = db.qualityProfiles().insert(org2, p -> p.setLanguage(JAVA_LANGUAGE).setName("Sonar Way"));
- QProfileDto nonDefaultJavaInOrg2 = db.qualityProfiles().insert(org2, p -> p.setLanguage(JAVA_LANGUAGE).setName("My Way"));
- QProfileDto defaultXooInOrg2 = db.qualityProfiles().insert(org2, p -> p.setLanguage(XOO_LANGUAGE).setName("Sonar Way"));
- QProfileDto nonDefaultXooInOrg2 = db.qualityProfiles().insert(org2, p -> p.setLanguage(XOO_LANGUAGE).setName("My Way"));
- db.qualityProfiles().setAsDefault(defaultJavaInOrg1, defaultJavaInOrg2, defaultXooInOrg1, defaultXooInOrg2);
-
- WsActionTester tester = newWsActionTester();
-
- // default profile for specified organization and language
- assertThat(tester.newRequest()
- .setParam("organization", org1.getKey())
- .setParam("language", defaultJavaInOrg1.getLanguage())
- .execute()
- .getInput())
- .isEqualTo("Backup of java/" + defaultJavaInOrg1.getKee());
-
- // profile for specified organization, language and name --> do not mix with Xoo profile or profile with same lang/name on other
- // organization
- assertThat(tester.newRequest()
- .setParam("organization", org1.getKey())
- .setParam("language", defaultJavaInOrg1.getLanguage())
- .setParam("name", defaultJavaInOrg1.getName())
- .execute()
- .getInput())
- .isEqualTo("Backup of java/" + defaultJavaInOrg1.getKee());
- }
-
- @Test
- public void export_profile_in_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto profile = createProfile(organization, false);
- UserDto user = db.users().insertUser();
- userSession.logIn(user).addMembership(organization);
-
- WsActionTester tester = newWsActionTester(newExporter("polop"));
- String result = tester.newRequest()
- .setParam("organization", organization.getKey())
- .setParam("language", profile.getLanguage())
- .setParam("qualityProfile", profile.getName())
- .setParam("exporterKey", "polop").execute()
- .getInput();
-
- assertThat(result).isEqualTo("Profile " + profile.getLanguage() + "/" + profile.getName() + " exported by polop");
- }
-
- @Test
public void throw_NotFoundException_if_profile_with_specified_name_does_not_exist_in_default_organization() {
expectedException.expect(NotFoundException.class);
@@ -193,7 +114,7 @@ public class ExportActionTest {
@Test
public void throw_IAE_if_export_with_specified_key_does_not_exist() {
- QProfileDto profile = createProfile(db.getDefaultOrganization(), true);
+ QProfileDto profile = createProfile(true);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Value of parameter 'exporterKey' (unknown) must be one of: [polop, palap]");
@@ -204,48 +125,12 @@ public class ExportActionTest {
}
@Test
- public void throw_NotFoundException_if_specified_organization_does_not_exist() {
- WsActionTester tester = newWsActionTester(newExporter("foo"));
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage("No organization with key 'does_not_exist'");
-
- tester.newRequest()
- .setParam("organization", "does_not_exist")
- .setParam("language", XOO_LANGUAGE)
- .setParam("name", "bar")
- .setParam("exporterKey", "foo")
- .execute();
- }
-
- @Test
- public void fail_on_paid_organization_when_not_member() {
- WsActionTester tester = newWsActionTester(newExporter("foo"));
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO_LANGUAGE));
-
- expectedException.expect(ForbiddenException.class);
- expectedException.expectMessage(format("You're not member of organization '%s'", organization.getKey()));
-
- tester.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_LANGUAGE, XOO_LANGUAGE)
- .setParam("exporterKey", "foo")
- .execute();
- }
-
- @Test
public void definition_without_exporters() {
WebService.Action definition = newWsActionTester().getDef();
assertThat(definition.isPost()).isFalse();
assertThat(definition.isInternal()).isFalse();
- assertThat(definition.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("language", "qualityProfile", "organization");
-
- WebService.Param organizationParam = definition.param("organization");
- assertThat(organizationParam.since()).isEqualTo("6.4");
- assertThat(organizationParam.isInternal()).isTrue();
+ assertThat(definition.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("language", "qualityProfile");
WebService.Param name = definition.param("qualityProfile");
assertThat(name.deprecatedSince()).isNullOrEmpty();
@@ -260,7 +145,7 @@ public class ExportActionTest {
assertThat(definition.isPost()).isFalse();
assertThat(definition.isInternal()).isFalse();
- assertThat(definition.params()).extracting("key").containsExactlyInAnyOrder("language", "qualityProfile", "organization", "exporterKey");
+ assertThat(definition.params()).extracting("key").containsExactlyInAnyOrder("language", "qualityProfile", "exporterKey");
WebService.Param exportersParam = definition.param("exporterKey");
assertThat(exportersParam.possibleValues()).containsOnly("polop", "palap");
assertThat(exportersParam.deprecatedKey()).isEqualTo("format");
@@ -268,8 +153,8 @@ public class ExportActionTest {
assertThat(exportersParam.isInternal()).isFalse();
}
- private QProfileDto createProfile(OrganizationDto organization, boolean isDefault) {
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO_LANGUAGE));
+ private QProfileDto createProfile(boolean isDefault) {
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO_LANGUAGE));
if (isDefault) {
db.qualityProfiles().setAsDefault(profile);
}
@@ -278,7 +163,7 @@ public class ExportActionTest {
private WsActionTester newWsActionTester(ProfileExporter... profileExporters) {
QProfileExporters exporters = new QProfileExporters(dbClient, null, null, profileExporters, null);
- return new WsActionTester(new ExportAction(dbClient, backuper, exporters, LanguageTesting.newLanguages(XOO_LANGUAGE, JAVA_LANGUAGE), wsSupport));
+ return new WsActionTester(new ExportAction(dbClient, backuper, exporters, LanguageTesting.newLanguages(XOO_LANGUAGE, JAVA_LANGUAGE)));
}
private static ProfileExporter newExporter(String key) {
@@ -311,7 +196,7 @@ public class ExportActionTest {
}
@Override
- public QProfileRestoreSummary restore(DbSession dbSession, Reader backup, OrganizationDto organization, @Nullable String overriddenProfileName) {
+ public QProfileRestoreSummary restore(DbSession dbSession, Reader backup, @Nullable String overriddenProfileName) {
throw new UnsupportedOperationException();
}
@@ -320,7 +205,8 @@ public class ExportActionTest {
throw new UnsupportedOperationException();
}
- @Override public QProfileRestoreSummary copy(DbSession dbSession, QProfileDto from, QProfileDto to) {
+ @Override
+ public QProfileRestoreSummary copy(DbSession dbSession, QProfileDto from, QProfileDto to) {
throw new UnsupportedOperationException();
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/InheritanceActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/InheritanceActionTest.java
index 2121a1aeb7a..a533309f3bc 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/InheritanceActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/InheritanceActionTest.java
@@ -35,15 +35,12 @@ import org.sonar.api.utils.System2;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleTesting;
-import org.sonar.db.user.UserDto;
import org.sonar.server.es.EsClient;
import org.sonar.server.es.EsTester;
-import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.qualityprofile.QProfileRules;
@@ -60,15 +57,12 @@ import org.sonar.server.util.TypeValidations;
import org.sonar.server.ws.WsActionTester;
import org.sonarqube.ws.Qualityprofiles.InheritanceWsResponse;
-import static java.lang.String.format;
import static java.util.Arrays.asList;
import static java.util.Collections.singleton;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.test.JsonAssert.assertJson;
import static org.sonarqube.ws.MediaTypes.PROTOBUF;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class InheritanceActionTest {
@@ -100,7 +94,6 @@ public class InheritanceActionTest {
@Test
public void inheritance_nominal() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule1 = createRule("xoo", "rule1");
RuleDefinitionDto rule2 = createRule("xoo", "rule2");
RuleDefinitionDto rule3 = createRule("xoo", "rule3");
@@ -108,34 +101,33 @@ public class InheritanceActionTest {
/*
* sonar way (2) <- companyWide (2) <- buWide (2, 1 overriding) <- (forProject1 (2), forProject2 (2))
*/
- QProfileDto sonarway = db.qualityProfiles().insert(organization, p -> p.setKee("xoo-sonar-way").setLanguage("xoo").setName("Sonar way").setIsBuiltIn(true));
+ QProfileDto sonarway = db.qualityProfiles().insert(p -> p.setKee("xoo-sonar-way").setLanguage("xoo").setName("Sonar way").setIsBuiltIn(true));
createActiveRule(rule1, sonarway);
createActiveRule(rule2, sonarway);
dbSession.commit();
activeRuleIndexer.indexOnStartup(activeRuleIndexer.getIndexTypes());
- QProfileDto companyWide = createProfile(organization, "xoo", "My Company Profile", "xoo-my-company-profile-12345");
+ QProfileDto companyWide = createProfile("xoo", "My Company Profile", "xoo-my-company-profile-12345");
setParent(sonarway, companyWide);
- QProfileDto buWide = createProfile(organization, "xoo", "My BU Profile", "xoo-my-bu-profile-23456");
+ QProfileDto buWide = createProfile("xoo", "My BU Profile", "xoo-my-bu-profile-23456");
setParent(companyWide, buWide);
overrideActiveRuleSeverity(rule1, buWide, Severity.CRITICAL);
- QProfileDto forProject1 = createProfile(organization, "xoo", "For Project One", "xoo-for-project-one-34567");
+ QProfileDto forProject1 = createProfile("xoo", "For Project One", "xoo-for-project-one-34567");
setParent(buWide, forProject1);
createActiveRule(rule3, forProject1);
dbSession.commit();
activeRuleIndexer.indexOnStartup(activeRuleIndexer.getIndexTypes());
- QProfileDto forProject2 = createProfile(organization, "xoo", "For Project Two", "xoo-for-project-two-45678");
+ QProfileDto forProject2 = createProfile("xoo", "For Project Two", "xoo-for-project-two-45678");
setParent(buWide, forProject2);
overrideActiveRuleSeverity(rule2, forProject2, Severity.CRITICAL);
String response = ws.newRequest()
.setParam(PARAM_LANGUAGE, buWide.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, buWide.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute()
.getInput();
@@ -144,18 +136,17 @@ public class InheritanceActionTest {
@Test
public void inheritance_parent_child() throws Exception {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule1 = db.rules().insert();
RuleDefinitionDto rule2 = db.rules().insert();
RuleDefinitionDto rule3 = db.rules().insert();
ruleIndexer.commitAndIndex(db.getSession(), asList(rule1.getUuid(), rule2.getUuid(), rule3.getUuid()));
- QProfileDto parent = db.qualityProfiles().insert(organization);
+ QProfileDto parent = db.qualityProfiles().insert();
db.qualityProfiles().activateRule(parent, rule1);
db.qualityProfiles().activateRule(parent, rule2);
long parentRules = 2;
- QProfileDto child = db.qualityProfiles().insert(organization, q -> q.setParentKee(parent.getKee()));
+ QProfileDto child = db.qualityProfiles().insert(q -> q.setParentKee(parent.getKee()));
db.qualityProfiles().activateRule(child, rule3);
long childRules = 1;
@@ -165,7 +156,6 @@ public class InheritanceActionTest {
.setMediaType(PROTOBUF)
.setParam(PARAM_LANGUAGE, child.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, child.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute()
.getInputStream();
@@ -180,11 +170,10 @@ public class InheritanceActionTest {
@Test
public void inheritance_ignores_removed_rules() throws Exception {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule = db.rules().insert(r -> r.setStatus(RuleStatus.REMOVED));
ruleIndexer.commitAndIndex(db.getSession(), rule.getUuid());
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
db.qualityProfiles().activateRule(profile, rule);
long activeRules = 0;
@@ -194,7 +183,6 @@ public class InheritanceActionTest {
.setMediaType(PROTOBUF)
.setParam(PARAM_LANGUAGE, profile.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute()
.getInputStream();
@@ -206,33 +194,17 @@ public class InheritanceActionTest {
@Test
public void inheritance_no_family() {
// Simple profile, no parent, no child
- OrganizationDto organization = db.organizations().insert();
- QProfileDto remi = createProfile(organization, "xoo", "Nobodys Boy", "xoo-nobody-s-boy-01234");
+ QProfileDto remi = createProfile("xoo", "Nobodys Boy", "xoo-nobody-s-boy-01234");
String response = ws.newRequest()
.setParam(PARAM_LANGUAGE, remi.getLanguage())
.setParam(PARAM_QUALITY_PROFILE, remi.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute()
.getInput();
assertJson(response).isSimilarTo(getClass().getResource("InheritanceActionTest/inheritance-simple.json"));
}
- @Test
- public void inheritance_on_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- UserDto user = db.users().insertUser();
- userSession.logIn(user).addMembership(organization);
-
- ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_LANGUAGE, qualityProfile.getLanguage())
- .execute();
- }
-
@Test(expected = NotFoundException.class)
public void fail_if_not_found() {
ws.newRequest()
@@ -242,30 +214,15 @@ public class InheritanceActionTest {
}
@Test
- public void fail_on_paid_organization_when_not_member() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
-
- expectedException.expect(ForbiddenException.class);
- expectedException.expectMessage(format("You're not member of organization '%s'", organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .setParam(PARAM_QUALITY_PROFILE, qualityProfile.getName())
- .setParam(PARAM_LANGUAGE, qualityProfile.getLanguage())
- .execute();
- }
-
- @Test
public void definition() {
WebService.Action definition = ws.getDef();
assertThat(definition.key()).isEqualTo("inheritance");
- assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("language", "qualityProfile", "organization");
+ assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("language", "qualityProfile");
}
- private QProfileDto createProfile(OrganizationDto organization, String lang, String name, String key) {
- return db.qualityProfiles().insert(organization, qp -> qp.setKee(key).setName(name).setLanguage(lang));
+ private QProfileDto createProfile(String lang, String name, String key) {
+ return db.qualityProfiles().insert(qp -> qp.setKee(key).setName(name).setLanguage(lang));
}
private void setParent(QProfileDto profile, QProfileDto parent) {
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ProjectsActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ProjectsActionTest.java
index 4ebfb623b71..11369776308 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ProjectsActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ProjectsActionTest.java
@@ -31,19 +31,15 @@ import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.user.UserDto;
-import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException;
-import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsActionTester;
-import static java.lang.String.format;
import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.api.server.ws.WebService.Param.PAGE;
import static org.sonar.api.server.ws.WebService.Param.PAGE_SIZE;
import static org.sonar.api.server.ws.WebService.Param.TEXT_QUERY;
import static org.sonar.api.web.UserRole.USER;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_KEY;
public class ProjectsActionTest {
@@ -55,15 +51,13 @@ public class ProjectsActionTest {
@Rule
public UserSessionRule userSession = UserSessionRule.standalone();
- private WsActionTester ws = new WsActionTester(
- new ProjectsAction(db.getDbClient(), userSession, new QProfileWsSupport(db.getDbClient(), userSession, TestDefaultOrganizationProvider.from(db))));
+ private WsActionTester ws = new WsActionTester(new ProjectsAction(db.getDbClient(), userSession));
@Test
public void list_authorized_projects_only() {
- OrganizationDto organization = db.organizations().insert();
- ComponentDto project1 = db.components().insertPrivateProject(organization);
- ComponentDto project2 = db.components().insertPrivateProject(organization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ ComponentDto project1 = db.components().insertPrivateProject();
+ ComponentDto project2 = db.components().insertPrivateProject();
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
associateProjectsWithProfile(qualityProfile, db.components().getProjectDto(project1), db.components().getProjectDto(project2));
// user only sees project1
UserDto user = db.users().insertUser();
@@ -86,12 +80,12 @@ public class ProjectsActionTest {
@Test
public void paginate() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
ProjectDto project1 = db.components().insertPublicProjectDto(organization, p -> p.setName("Project One"));
ProjectDto project2 = db.components().insertPublicProjectDto(organization, p -> p.setName("Project Two"));
ProjectDto project3 = db.components().insertPublicProjectDto(organization, p -> p.setName("Project Three"));
ProjectDto project4 = db.components().insertPublicProjectDto(organization, p -> p.setName("Project Four"));
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
associateProjectsWithProfile(qualityProfile, project1, project2, project3, project4);
ws.newRequest()
@@ -195,10 +189,9 @@ public class ProjectsActionTest {
@Test
public void show_unselected() {
- OrganizationDto organization = db.organizations().insert();
- ProjectDto project1 = db.components().insertPublicProjectDto(organization);
- ProjectDto project2 = db.components().insertPublicProjectDto(organization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ ProjectDto project1 = db.components().insertPublicProjectDto();
+ ProjectDto project2 = db.components().insertPublicProjectDto();
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
associateProjectsWithProfile(qualityProfile, project1);
ws.newRequest()
@@ -216,14 +209,13 @@ public class ProjectsActionTest {
@Test
public void show_all() {
- OrganizationDto organization = db.organizations().insert();
- ProjectDto project1 = db.components().insertPublicProjectDto(organization);
- ProjectDto project2 = db.components().insertPublicProjectDto(organization);
- ProjectDto project3 = db.components().insertPublicProjectDto(organization);
- ProjectDto project4 = db.components().insertPublicProjectDto(organization);
- QProfileDto qualityProfile1 = db.qualityProfiles().insert(organization);
+ ProjectDto project1 = db.components().insertPublicProjectDto();
+ ProjectDto project2 = db.components().insertPublicProjectDto();
+ ProjectDto project3 = db.components().insertPublicProjectDto();
+ ProjectDto project4 = db.components().insertPublicProjectDto();
+ QProfileDto qualityProfile1 = db.qualityProfiles().insert();
associateProjectsWithProfile(qualityProfile1, project1, project2);
- QProfileDto qualityProfile2 = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile2 = db.qualityProfiles().insert();
// project3 is associated with P2, must appear as not associated with xooP1
associateProjectsWithProfile(qualityProfile2, project3);
@@ -254,12 +246,11 @@ public class ProjectsActionTest {
@Test
public void filter_on_name() {
- OrganizationDto organization = db.organizations().insert();
- ProjectDto project1 = db.components().insertPublicProjectDto(organization, p -> p.setName("Project One"));
- ProjectDto project2 = db.components().insertPublicProjectDto(organization, p -> p.setName("Project Two"));
- ProjectDto project3 = db.components().insertPublicProjectDto(organization, p -> p.setName("Project Three"));
- ProjectDto project4 = db.components().insertPublicProjectDto(organization, p -> p.setName("Project Four"));
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ ProjectDto project1 = db.components().insertPublicProjectDto(p -> p.setName("Project One"));
+ ProjectDto project2 = db.components().insertPublicProjectDto(p -> p.setName("Project Two"));
+ ProjectDto project3 = db.components().insertPublicProjectDto(p -> p.setName("Project Three"));
+ ProjectDto project4 = db.components().insertPublicProjectDto(p -> p.setName("Project Four"));
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
associateProjectsWithProfile(qualityProfile, project1, project2);
ws.newRequest()
@@ -285,9 +276,8 @@ public class ProjectsActionTest {
@Test
public void return_deprecated_uuid_field() {
- OrganizationDto organization = db.organizations().insert();
- ProjectDto project = db.components().insertPublicProjectDto(organization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ ProjectDto project = db.components().insertPublicProjectDto();
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
associateProjectsWithProfile(qualityProfile, project);
ws.newRequest()
@@ -304,28 +294,6 @@ public class ProjectsActionTest {
}
@Test
- public void projects_on_paid_organization() {
- OrganizationDto organization = db.organizations().insert();
- ProjectDto project = db.components().insertPublicProjectDto(organization);
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- associateProjectsWithProfile(qualityProfile, project);
- UserDto user = db.users().insertUser();
- db.organizations().addMember(organization, user);
- userSession.logIn(user);
-
- ws.newRequest()
- .setParam(PARAM_KEY, qualityProfile.getKee())
- .setParam("selected", "all")
- .execute()
- .assertJson("{\"results\":\n" +
- " [\n" +
- " {\n" +
- " \"key\": \"" + project.getKey() + "\",\n" +
- " }\n" +
- " ]}");
- }
-
- @Test
public void fail_on_nonexistent_profile() {
expectedException.expect(NotFoundException.class);
@@ -335,19 +303,6 @@ public class ProjectsActionTest {
}
@Test
- public void fail_on_paid_organization_when_not_member() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
-
- expectedException.expect(ForbiddenException.class);
- expectedException.expectMessage(format("You're not member of organization '%s'", organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_KEY, qualityProfile.getKee())
- .execute();
- }
-
- @Test
public void definition() {
WebService.Action definition = ws.getDef();
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfileReferenceTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfileReferenceTest.java
index b10e73f115a..0adcf26f007 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfileReferenceTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfileReferenceTest.java
@@ -60,26 +60,16 @@ public class QProfileReferenceTest {
}
@Test
- public void fromName_creates_reference_by_name_on_default_organization() {
- QProfileReference ref = QProfileReference.fromName(null, "js", "Sonar way");
+ public void fromName_creates_reference_by_name() {
+ QProfileReference ref = QProfileReference.fromName("js", "Sonar way");
assertThat(ref.hasKey()).isFalse();
- assertThat(ref.getOrganizationKey()).isEmpty();
- assertThat(ref.getLanguage()).isEqualTo("js");
- assertThat(ref.getName()).isEqualTo("Sonar way");
- }
-
- @Test
- public void fromName_creates_reference_by_name_on_specified_organization() {
- QProfileReference ref = QProfileReference.fromName("my-org", "js", "Sonar way");
- assertThat(ref.hasKey()).isFalse();
- assertThat(ref.getOrganizationKey()).hasValue("my-org");
assertThat(ref.getLanguage()).isEqualTo("js");
assertThat(ref.getName()).isEqualTo("Sonar way");
}
@Test
public void getKey_throws_ISE_on_reference_by_name() {
- QProfileReference ref = QProfileReference.fromName(null, "js", "Sonar way");
+ QProfileReference ref = QProfileReference.fromName("js", "Sonar way");
expectedException.expect(IllegalStateException.class);
expectedException.expectMessage("Key is not defined. Please call hasKey().");
@@ -88,36 +78,12 @@ public class QProfileReferenceTest {
}
@Test
- public void getOrganization_throws_ISE_on_reference_by_key() {
- QProfileReference ref = QProfileReference.fromKey("foo");
-
- expectedException.expect(IllegalStateException.class);
- expectedException.expectMessage("Organization is not defined. Please call hasKey().");
-
- ref.getOrganizationKey();
- }
-
- @Test
- public void fromName_reads_request_parameters_and_creates_reference_by_name_on_default_organization() {
- SimpleGetRequest req = new SimpleGetRequest();
- req.setParam("language", "js");
- req.setParam("qualityProfile", "Sonar way");
-
- QProfileReference ref = QProfileReference.fromName(req);
- assertThat(ref.getOrganizationKey()).isEmpty();
- assertThat(ref.getLanguage()).isEqualTo("js");
- assertThat(ref.getName()).isEqualTo("Sonar way");
- }
-
- @Test
- public void fromName_reads_request_parameters_and_creates_reference_by_name_on_specified_organization() {
+ public void fromName_reads_request_parameters_and_creates_reference_by_name() {
SimpleGetRequest req = new SimpleGetRequest();
- req.setParam("organization", "my-org");
req.setParam("language", "js");
req.setParam("qualityProfile", "Sonar way");
QProfileReference ref = QProfileReference.fromName(req);
- assertThat(ref.getOrganizationKey()).hasValue("my-org");
assertThat(ref.getLanguage()).isEqualTo("js");
assertThat(ref.getName()).isEqualTo("Sonar way");
}
@@ -152,7 +118,7 @@ public class QProfileReferenceTest {
QProfileReference key1 = QProfileReference.fromKey("one");
QProfileReference key1bis = QProfileReference.fromKey("one");
QProfileReference key2 = QProfileReference.fromKey("two");
- QProfileReference name = QProfileReference.fromName("my-org", "js", "one");
+ QProfileReference name = QProfileReference.fromName("js", "one");
assertThat(key1.equals(key1)).isTrue();
assertThat(key1.equals(key1bis)).isTrue();
@@ -165,10 +131,10 @@ public class QProfileReferenceTest {
@Test
public void test_equals_and_hashCode_of_name_ref() {
- QProfileReference name1 = QProfileReference.fromName("org1", "js", "one");
- QProfileReference name1bis = QProfileReference.fromName("org1", "js", "one");
- QProfileReference name2 = QProfileReference.fromName("org1", "js", "two");
- QProfileReference name1OtherLang = QProfileReference.fromName("org1", "java", "one");
+ QProfileReference name1 = QProfileReference.fromName("js", "one");
+ QProfileReference name1bis = QProfileReference.fromName("js", "one");
+ QProfileReference name2 = QProfileReference.fromName("js", "two");
+ QProfileReference name1OtherLang = QProfileReference.fromName("java", "one");
QProfileReference key = QProfileReference.fromKey("one");
assertThat(name1.equals(name1)).isTrue();
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfileWsSupportTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfileWsSupportTest.java
index 365960c5361..8bace09eaf8 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfileWsSupportTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfileWsSupportTest.java
@@ -23,7 +23,6 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.qualityprofile.QualityProfileTesting;
import org.sonar.db.rule.RuleDefinitionDto;
@@ -50,12 +49,11 @@ public class QProfileWsSupportTest {
@Test
public void getProfile_returns_the_profile_specified_by_key() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile = db.qualityProfiles().insert();
QProfileDto loaded = underTest.getProfile(db.getSession(), QProfileReference.fromKey(profile.getKee()));
assertThat(loaded.getKee()).isEqualTo(profile.getKee());
- assertThat(loaded.getOrganizationUuid()).isEqualTo(profile.getOrganizationUuid());
assertThat(loaded.getLanguage()).isEqualTo(profile.getLanguage());
assertThat(loaded.getName()).isEqualTo(profile.getName());
}
@@ -69,27 +67,26 @@ public class QProfileWsSupportTest {
}
@Test
- public void getProfile_returns_the_profile_specified_by_name_and_default_organization() {
- QProfileDto profile = QualityProfileTesting.newQualityProfileDto().setOrganizationUuid(db.getDefaultOrganization().getUuid());
+ public void getProfile_returns_the_profile_specified_by_name() {
+ QProfileDto profile = QualityProfileTesting.newQualityProfileDto();
db.qualityProfiles().insert(profile);
- QProfileDto loaded = underTest.getProfile(db.getSession(), QProfileReference.fromName(null, profile.getLanguage(), profile.getName()));
+ QProfileDto loaded = underTest.getProfile(db.getSession(), QProfileReference.fromName(profile.getLanguage(), profile.getName()));
assertThat(loaded.getKee()).isEqualTo(profile.getKee());
- assertThat(loaded.getOrganizationUuid()).isEqualTo(profile.getOrganizationUuid());
assertThat(loaded.getLanguage()).isEqualTo(profile.getLanguage());
assertThat(loaded.getName()).isEqualTo(profile.getName());
}
@Test
- public void getProfile_throws_NotFoundException_if_specified_name_does_not_exist_on_default_organization() {
- QProfileDto profile = QualityProfileTesting.newQualityProfileDto().setOrganizationUuid(db.getDefaultOrganization().getUuid());
+ public void getProfile_throws_NotFoundException_if_specified_name_does_not_exist() {
+ QProfileDto profile = QualityProfileTesting.newQualityProfileDto();
db.qualityProfiles().insert(profile);
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Quality Profile for language 'java' and name 'missing' does not exist");
- underTest.getProfile(db.getSession(), QProfileReference.fromName(null, "java", "missing"));
+ underTest.getProfile(db.getSession(), QProfileReference.fromName("java", "missing"));
}
@Test
@@ -101,26 +98,4 @@ public class QProfileWsSupportTest {
underTest.getRule(db.getSession(), rule.getKey());
}
-
- @Test
- public void getProfile_throws_NotFoundException_if_specified_name_does_not_exist_on_specified_organization() {
- OrganizationDto org1 = db.organizations().insert();
- QProfileDto profile = QualityProfileTesting.newQualityProfileDto().setOrganizationUuid(org1.getUuid());
- db.qualityProfiles().insert(profile);
- OrganizationDto org2 = db.organizations().insert();
-
- expectedException.expect(NotFoundException.class);
- expectedException
- .expectMessage(format("Quality Profile for language '%s' and name '%s' does not exist in organization '%s'", profile.getLanguage(), profile.getName(), org2.getKey()));
-
- underTest.getProfile(db.getSession(), QProfileReference.fromName(org2.getKey(), profile.getLanguage(), profile.getName()));
- }
-
- @Test
- public void getProfile_throws_NotFoundException_if_specified_organization_does_not_exist() {
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage("No organization with key 'the-org'");
-
- underTest.getProfile(db.getSession(), QProfileReference.fromName("the-org", "java", "the-name"));
- }
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java
index 01785428cc1..31658beb136 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsMediumTest.java
@@ -54,7 +54,6 @@ import org.sonar.server.rule.index.RuleIndex;
import org.sonar.server.rule.index.RuleIndexer;
import org.sonar.server.rule.index.RuleQuery;
import org.sonar.server.rule.ws.RuleQueryFactory;
-import org.sonar.server.rule.ws.RuleWsSupport;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.util.TypeValidations;
import org.sonar.server.ws.WsActionTester;
@@ -91,8 +90,7 @@ public class QProfilesWsMediumTest {
private QProfileRules qProfileRules = new QProfileRulesImpl(dbClient, ruleActivator, ruleIndex, activeRuleIndexer);
private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(dbTester);
private QProfileWsSupport qProfileWsSupport = new QProfileWsSupport(dbClient, userSessionRule, defaultOrganizationProvider);
- private RuleWsSupport ruleWsSupport = new RuleWsSupport(dbClient, userSessionRule, defaultOrganizationProvider);
- private RuleQueryFactory ruleQueryFactory = new RuleQueryFactory(dbClient, ruleWsSupport);
+ private RuleQueryFactory ruleQueryFactory = new RuleQueryFactory(dbClient);
private OrganizationDto organization;
private WsActionTester wsDeactivateRule = new WsActionTester(new DeactivateRuleAction(dbClient, qProfileRules, userSessionRule, qProfileWsSupport));
@@ -377,7 +375,7 @@ public class QProfilesWsMediumTest {
dbSession.commit();
// 2. Assert ActiveRule with MINOR severity
- assertThat(dbClient.activeRuleDao().selectByRuleUuid(dbSession, organization, rule0.getUuid()).get(0).getSeverityString()).isEqualTo("MINOR");
+ assertThat(dbClient.activeRuleDao().selectByOrgRuleUuid(dbSession, rule0.getUuid()).get(0).getSeverityString()).isEqualTo("MINOR");
assertThat(ruleIndex.searchAll(new RuleQuery()
.setQProfile(profile)
.setKey(rule0.getKey().toString())
@@ -410,8 +408,8 @@ public class QProfilesWsMediumTest {
@Test
public void reset() {
- QProfileDto profile = QProfileTesting.newXooP1(organization);
- QProfileDto childProfile = QProfileTesting.newXooP2(organization).setParentKee(QProfileTesting.XOO_P1_KEY);
+ QProfileDto profile = QProfileTesting.newXooP1();
+ QProfileDto childProfile = QProfileTesting.newXooP2().setParentKee(QProfileTesting.XOO_P1_KEY);
dbClient.qualityProfileDao().insert(dbSession, profile, childProfile);
RuleDefinitionDto rule = createRule(profile.getLanguage(), "rule");
@@ -445,7 +443,7 @@ public class QProfilesWsMediumTest {
}
private QProfileDto createProfile(String lang) {
- QProfileDto profile = QProfileTesting.newQProfileDto(organization, new QProfileName(lang, "P" + lang), "p" + lang);
+ QProfileDto profile = QProfileTesting.newQProfileDto(new QProfileName(lang, "P" + lang), "p" + lang);
dbClient.qualityProfileDao().insert(dbSession, profile);
return profile;
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveGroupActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveGroupActionTest.java
index 8adbaf028ce..c9b3c1cd13b 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveGroupActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveGroupActionTest.java
@@ -43,7 +43,6 @@ import static java.lang.String.format;
import static org.assertj.core.api.Assertions.assertThat;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_GROUP;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class RemoveGroupActionTest {
@@ -68,13 +67,13 @@ public class RemoveGroupActionTest {
assertThat(def.key()).isEqualTo("remove_group");
assertThat(def.isPost()).isTrue();
assertThat(def.isInternal()).isTrue();
- assertThat(def.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("organization", "qualityProfile", "language", "group");
+ assertThat(def.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("qualityProfile", "language", "group");
}
@Test
public void remove_group() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
db.qualityProfiles().addGroupPermission(profile, group);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
@@ -83,7 +82,6 @@ public class RemoveGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(response.getStatus()).isEqualTo(204);
@@ -92,8 +90,8 @@ public class RemoveGroupActionTest {
@Test
public void does_nothing_when_group_cannot_edit_profile() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
assertThat(db.getDbClient().qProfileEditGroupsDao().exists(db.getSession(), profile, group)).isFalse();
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
@@ -102,7 +100,6 @@ public class RemoveGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditGroupsDao().exists(db.getSession(), profile, group)).isFalse();
@@ -110,8 +107,8 @@ public class RemoveGroupActionTest {
@Test
public void qp_administers_can_remove_group() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
db.qualityProfiles().addGroupPermission(profile, group);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
@@ -120,7 +117,6 @@ public class RemoveGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditGroupsDao().exists(db.getSession(), profile, group)).isFalse();
@@ -128,8 +124,8 @@ public class RemoveGroupActionTest {
@Test
public void qp_editors_can_remove_group() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
db.qualityProfiles().addGroupPermission(profile, group);
UserDto userAllowedToEditProfile = db.users().insertUser();
@@ -140,7 +136,6 @@ public class RemoveGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditGroupsDao().exists(db.getSession(), profile, group)).isFalse();
@@ -149,7 +144,7 @@ public class RemoveGroupActionTest {
@Test
public void uses_default_organization_when_no_organization() {
OrganizationDto organization = db.getDefaultOrganization();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
db.qualityProfiles().addGroupPermission(profile, group);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
@@ -165,8 +160,8 @@ public class RemoveGroupActionTest {
@Test
public void fail_when_group_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
@@ -176,88 +171,47 @@ public class RemoveGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, "unknown")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_qprofile_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
GroupDto group = db.users().insertGroup(organization);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name 'unknown' does not exist in organization '%s'", organization.getKey()));
+ expectedException.expectMessage("Quality Profile for language 'xoo' and name 'unknown' does not exist");
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, "unknown")
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute();
- }
-
- @Test
- public void fail_when_qprofile_does_not_belong_to_organization() {
- OrganizationDto organization = db.organizations().insert();
- GroupDto group = db.users().insertGroup(organization);
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(anotherOrganization, p -> p.setLanguage(XOO));
- userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_wrong_language() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage("unknown"));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage("unknown"));
GroupDto group = db.users().insertGroup(organization);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute();
- }
-
- @Test
- public void fail_when_group_does_not_belong_to_organization() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto anotherOrganization = db.organizations().insert();
- GroupDto group = db.users().insertGroup(anotherOrganization);
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
- userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("No group with name '%s' in organization '%s'", group.getName(), organization.getKey()));
+ expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist", profile.getName()));
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_qp_is_built_in() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
GroupDto group = db.users().insertGroup(organization);
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO).setIsBuiltIn(true));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO).setIsBuiltIn(true));
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(BadRequestException.class);
@@ -267,14 +221,13 @@ public class RemoveGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_not_enough_permission() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_GATES, organization);
@@ -284,7 +237,6 @@ public class RemoveGroupActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_GROUP, group.getName())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveProjectActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveProjectActionTest.java
index 0193a9eaf44..9dccd96e95e 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveProjectActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveProjectActionTest.java
@@ -31,7 +31,6 @@ import org.sonar.db.DbClient;
import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ResourceTypesRule;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.user.UserDto;
@@ -77,25 +76,22 @@ public class RemoveProjectActionTest {
assertThat(definition.isPost()).isTrue();
assertThat(definition.key()).isEqualTo("remove_project");
- assertThat(definition.params()).extracting(WebService.Param::key).containsOnly("qualityProfile", "project", "language", "organization");
+ assertThat(definition.params()).extracting(WebService.Param::key).containsOnly("qualityProfile", "project", "language");
WebService.Param languageParam = definition.param("language");
assertThat(languageParam.possibleValues()).containsOnly(LANGUAGE_1, LANGUAGE_2);
assertThat(languageParam.exampleValue()).isNull();
assertThat(languageParam.deprecatedSince()).isNullOrEmpty();
- WebService.Param organizationParam = definition.param("organization");
- assertThat(organizationParam.since()).isEqualTo("6.4");
- assertThat(organizationParam.isInternal()).isTrue();
WebService.Param profileName = definition.param("qualityProfile");
assertThat(profileName.deprecatedSince()).isNullOrEmpty();
}
@Test
- public void remove_profile_from_project_in_default_organization() {
+ public void remove_profile_from_project() {
logInAsProfileAdmin();
ProjectDto project = db.components().insertPrivateProjectDto(db.getDefaultOrganization());
- QProfileDto profileLang1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(LANGUAGE_1));
- QProfileDto profileLang2 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(LANGUAGE_2));
+ QProfileDto profileLang1 = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE_1));
+ QProfileDto profileLang2 = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE_2));
db.qualityProfiles().associateWithProject(project, profileLang1);
db.qualityProfiles().associateWithProject(project, profileLang2);
@@ -110,10 +106,10 @@ public class RemoveProjectActionTest {
public void removal_does_not_fail_if_profile_is_not_associated_to_project() {
logInAsProfileAdmin();
- ProjectDto project = db.components().insertPrivateProjectDto(db.getDefaultOrganization());
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setLanguage("xoo"));
+ ProjectDto project = db.components().insertPrivateProjectDto();
+ QProfileDto profile = db.qualityProfiles().insert(qp -> qp.setLanguage("xoo"));
- TestResponse response = call(db.getDefaultOrganization(), project, profile);
+ TestResponse response = call(project, profile);
assertThat(response.getStatus()).isEqualTo(HttpURLConnection.HTTP_NO_CONTENT);
assertProjectIsNotAssociatedToProfile(project, profile);
@@ -122,26 +118,25 @@ public class RemoveProjectActionTest {
@Test
public void project_administrator_can_remove_profile() {
ProjectDto project = db.components().insertPrivateProjectDto(db.getDefaultOrganization());
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setLanguage("xoo"));
+ QProfileDto profile = db.qualityProfiles().insert(qp -> qp.setLanguage("xoo"));
db.qualityProfiles().associateWithProject(project, profile);
userSession.logIn(db.users().insertUser()).addProjectPermission(UserRole.ADMIN, project);
- call(db.getDefaultOrganization(), project, profile);
+ call(project, profile);
assertProjectIsNotAssociatedToProfile(project, profile);
}
@Test
public void as_qprofile_editor() {
- OrganizationDto organization = db.organizations().insert();
- ProjectDto project = db.components().insertPrivateProjectDto(organization);
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(LANGUAGE_1));
+ ProjectDto project = db.components().insertPrivateProjectDto();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(LANGUAGE_1));
db.qualityProfiles().associateWithProject(project, profile);
UserDto user = db.users().insertUser();
db.qualityProfiles().addUserPermission(profile, user);
userSession.logIn(user);
- call(organization, project, profile);
+ call(project, profile);
assertProjectIsNotAssociatedToProfile(project, profile);
}
@@ -150,7 +145,7 @@ public class RemoveProjectActionTest {
public void fail_if_not_enough_permissions() {
userSession.logIn(db.users().insertUser());
ProjectDto project = db.components().insertPrivateProjectDto(db.getDefaultOrganization());
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), qp -> qp.setLanguage("xoo"));
+ QProfileDto profile = db.qualityProfiles().insert(qp -> qp.setLanguage("xoo"));
expectedException.expect(ForbiddenException.class);
expectedException.expectMessage("Insufficient privileges");
@@ -161,8 +156,8 @@ public class RemoveProjectActionTest {
@Test
public void fail_if_not_logged_in() {
userSession.anonymous();
- ProjectDto project = db.components().insertPrivateProjectDto(db.getDefaultOrganization());
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ ProjectDto project = db.components().insertPrivateProjectDto();
+ QProfileDto profile = db.qualityProfiles().insert();
expectedException.expect(UnauthorizedException.class);
expectedException.expectMessage("Authentication is required");
@@ -173,7 +168,7 @@ public class RemoveProjectActionTest {
@Test
public void fail_if_project_does_not_exist() {
logInAsProfileAdmin();
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile = db.qualityProfiles().insert();
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Project 'unknown' not found");
@@ -187,7 +182,7 @@ public class RemoveProjectActionTest {
@Test
public void fail_if_profile_does_not_exist() {
logInAsProfileAdmin();
- ComponentDto project = db.components().insertPrivateProject(db.getDefaultOrganization());
+ ComponentDto project = db.components().insertPrivateProject();
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Quality Profile for language 'xoo' and name 'unknown' does not exist");
@@ -201,11 +196,10 @@ public class RemoveProjectActionTest {
@Test
public void fail_when_using_branch_db_key() {
- OrganizationDto organization = db.organizations().insert();
- ComponentDto project = db.components().insertPublicProject(organization);
+ ComponentDto project = db.components().insertPublicProject();
userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
ComponentDto branch = db.components().insertProjectBranch(project);
- QProfileDto profile = db.qualityProfiles().insert(organization);
+ QProfileDto profile = db.qualityProfiles().insert();
expectedException.expect(NotFoundException.class);
expectedException.expectMessage(format("Project '%s' not found", branch.getDbKey()));
@@ -238,13 +232,4 @@ public class RemoveProjectActionTest {
.setParam("qualityProfile", qualityProfile.getName());
return request.execute();
}
-
- private TestResponse call(OrganizationDto organization, ProjectDto project, QProfileDto qualityProfile) {
- TestRequest request = ws.newRequest()
- .setParam("project", project.getKey())
- .setParam("organization", organization.getKey())
- .setParam("language", qualityProfile.getLanguage())
- .setParam("qualityProfile", qualityProfile.getName());
- return request.execute();
- }
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveUserActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveUserActionTest.java
index 61261d086be..ce49252156a 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveUserActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RemoveUserActionTest.java
@@ -43,7 +43,6 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LOGIN;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class RemoveUserActionTest {
@@ -68,13 +67,13 @@ public class RemoveUserActionTest {
assertThat(def.key()).isEqualTo("remove_user");
assertThat(def.isPost()).isTrue();
assertThat(def.isInternal()).isTrue();
- assertThat(def.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("organization", "qualityProfile", "language", "login");
+ assertThat(def.params()).extracting(WebService.Param::key).containsExactlyInAnyOrder("qualityProfile", "language", "login");
}
@Test
public void remove_user() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
db.qualityProfiles().addUserPermission(profile, user);
@@ -84,7 +83,6 @@ public class RemoveUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(response.getStatus()).isEqualTo(204);
@@ -93,8 +91,8 @@ public class RemoveUserActionTest {
@Test
public void does_nothing_when_user_cannot_edit_profile() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
assertThat(db.getDbClient().qProfileEditUsersDao().exists(db.getSession(), profile, user)).isFalse();
@@ -104,7 +102,6 @@ public class RemoveUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditUsersDao().exists(db.getSession(), profile, user)).isFalse();
@@ -112,8 +109,8 @@ public class RemoveUserActionTest {
@Test
public void qp_administers_can_remove_user() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
db.qualityProfiles().addUserPermission(profile, user);
@@ -123,7 +120,6 @@ public class RemoveUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditUsersDao().exists(db.getSession(), profile, user)).isFalse();
@@ -131,8 +127,8 @@ public class RemoveUserActionTest {
@Test
public void qp_editors_can_remove_user() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
db.qualityProfiles().addUserPermission(profile, user);
@@ -144,7 +140,6 @@ public class RemoveUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
assertThat(db.getDbClient().qProfileEditUsersDao().exists(db.getSession(), profile, user)).isFalse();
@@ -153,7 +148,7 @@ public class RemoveUserActionTest {
@Test
public void uses_default_organization_when_no_organization() {
OrganizationDto organization = db.getDefaultOrganization();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
db.qualityProfiles().addUserPermission(profile, user);
@@ -162,7 +157,7 @@ public class RemoveUserActionTest {
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_LOGIN, user.getLogin() )
+ .setParam(PARAM_LOGIN, user.getLogin())
.execute();
assertThat(db.getDbClient().qProfileEditUsersDao().exists(db.getSession(), profile, user)).isFalse();
@@ -170,8 +165,8 @@ public class RemoveUserActionTest {
@Test
public void fail_when_user_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
@@ -181,93 +176,50 @@ public class RemoveUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, "unknown")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_qprofile_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name 'unknown' does not exist in organization '%s'", organization.getKey()));
+ expectedException.expectMessage("Quality Profile for language 'xoo' and name 'unknown' does not exist");
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, "unknown")
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute();
- }
-
- @Test
- public void fail_when_qprofile_does_not_belong_to_organization() {
- OrganizationDto organization = db.organizations().insert();
- UserDto user = db.users().insertUser();
- db.organizations().addMember(organization, user);
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(anotherOrganization, p -> p.setLanguage(XOO));
- userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_wrong_language() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage("unknown"));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage("unknown"));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute();
- }
-
- @Test
- public void fail_when_user_is_not_member_of_organization() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto anotherOrganization = db.organizations().insert();
- UserDto user = db.users().insertUser();
- db.organizations().addMember(anotherOrganization, user);
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
- userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
-
- expectedException.expect(IllegalArgumentException.class);
- expectedException.expectMessage(format("User '%s' is not member of organization '%s'", user.getLogin(), organization.getKey()));
+ expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist", profile.getName()));
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_qp_is_built_in() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO).setIsBuiltIn(true));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO).setIsBuiltIn(true));
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(BadRequestException.class);
@@ -277,14 +229,13 @@ public class RemoveUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_not_enough_permission() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_GATES, organization);
@@ -295,7 +246,6 @@ public class RemoveUserActionTest {
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(PARAM_LOGIN, user.getLogin())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RenameActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RenameActionTest.java
index ed4f1a0eb08..34fdc01101f 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RenameActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RenameActionTest.java
@@ -70,7 +70,7 @@ public class RenameActionTest {
RenameAction underTest = new RenameAction(dbClient, userSession, wsSupport);
ws = new WsActionTester(underTest);
- organization = db.organizations().insert();
+ organization = db.organizations().getDefaultOrganization();
createProfiles();
}
@@ -90,14 +90,12 @@ public class RenameActionTest {
logInAsQProfileAdministrator();
QProfileDto qualityProfile1 = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization.getUuid())
.setLanguage("xoo")
.setName("Old, valid name");
db.qualityProfiles().insert(qualityProfile1);
String qualityProfileKey1 = qualityProfile1.getKee();
QProfileDto qualityProfile2 = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization.getUuid())
.setLanguage("xoo")
.setName("Invalid, duplicated name");
db.qualityProfiles().insert(qualityProfile2);
@@ -110,35 +108,8 @@ public class RenameActionTest {
}
@Test
- public void allow_same_name_in_different_organizations() {
- OrganizationDto organizationX = db.organizations().insert();
- OrganizationDto organizationY = db.organizations().insert();
- userSession.logIn()
- .addPermission(ADMINISTER_QUALITY_PROFILES, organizationX);
-
- QProfileDto qualityProfile1 = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organizationX.getUuid())
- .setLanguage("xoo")
- .setName("Old, unique name");
- db.qualityProfiles().insert(qualityProfile1);
- String qualityProfileKey1 = qualityProfile1.getKee();
-
- QProfileDto qualityProfile2 = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organizationY.getUuid())
- .setLanguage("xoo")
- .setName("Duplicated name");
- db.qualityProfiles().insert(qualityProfile2);
- String qualityProfileKey2 = qualityProfile2.getKee();
-
- call(qualityProfileKey1, "Duplicated name");
-
- QProfileDto reloaded = db.getDbClient().qualityProfileDao().selectByUuid(db.getSession(), qualityProfileKey1);
- assertThat(reloaded.getName()).isEqualTo("Duplicated name");
- }
-
- @Test
public void as_qprofile_editor() {
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
UserDto user = db.users().insertUser();
db.qualityProfiles().addUserPermission(qualityProfile, user);
userSession.logIn(user);
@@ -171,13 +142,9 @@ public class RenameActionTest {
@Test
public void fail_if_not_profile_administrator() {
- OrganizationDto organizationX = db.organizations().insert();
- OrganizationDto organizationY = db.organizations().insert();
- userSession.logIn(db.users().insertUser())
- .addPermission(ADMINISTER_QUALITY_PROFILES, organizationX);
+ userSession.logIn(db.users().insertUser());
- QProfileDto qualityProfile = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organizationY.getUuid());
+ QProfileDto qualityProfile = QualityProfileTesting.newQualityProfileDto();
db.qualityProfiles().insert(qualityProfile);
String qualityProfileKey = qualityProfile.getKee();
@@ -208,7 +175,7 @@ public class RenameActionTest {
@Test
public void fail_if_profile_is_built_in() {
logInAsQProfileAdministrator();
- String qualityProfileKey = db.qualityProfiles().insert(organization, p -> p.setIsBuiltIn(true)).getKee();
+ String qualityProfileKey = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true)).getKee();
expectedException.expect(BadRequestException.class);
@@ -247,18 +214,17 @@ public class RenameActionTest {
}
private String createNewValidQualityProfileKey() {
- QProfileDto qualityProfile = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization.getUuid());
+ QProfileDto qualityProfile = QualityProfileTesting.newQualityProfileDto();
db.qualityProfiles().insert(qualityProfile);
return qualityProfile.getKee();
}
private void createProfiles() {
- db.qualityProfiles().insert(organization, p -> p.setKee("sonar-way-xoo1-12345").setLanguage(xoo1Key).setName("Sonar way"));
+ db.qualityProfiles().insert(p -> p.setKee("sonar-way-xoo1-12345").setLanguage(xoo1Key).setName("Sonar way"));
- QProfileDto parentXoo2 = db.qualityProfiles().insert(organization, p -> p.setKee("sonar-way-xoo2-23456").setLanguage(xoo2Key).setName("Sonar way"));
+ QProfileDto parentXoo2 = db.qualityProfiles().insert(p -> p.setKee("sonar-way-xoo2-23456").setLanguage(xoo2Key).setName("Sonar way"));
- db.qualityProfiles().insert(organization, p -> p.setKee("my-sonar-way-xoo2-34567").setLanguage(xoo2Key).setName("My Sonar way").setParentKee(parentXoo2.getKee()));
+ db.qualityProfiles().insert(p -> p.setKee("my-sonar-way-xoo2-34567").setLanguage(xoo2Key).setName("My Sonar way").setParentKee(parentXoo2.getKee()));
}
private void logInAsQProfileAdministrator() {
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RestoreActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RestoreActionTest.java
index ba6df2f3dc4..b794740e2ca 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RestoreActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/RestoreActionTest.java
@@ -34,7 +34,6 @@ import org.sonar.db.DbTester;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.exceptions.ForbiddenException;
-import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.language.LanguageTesting;
import org.sonar.server.organization.DefaultOrganizationProvider;
@@ -78,13 +77,10 @@ public class RestoreActionTest {
assertThat(definition.description()).isNotEmpty();
// parameters
- assertThat(definition.params()).hasSize(2);
+ assertThat(definition.params()).hasSize(1);
WebService.Param backupParam = definition.param("backup");
assertThat(backupParam.isRequired()).isTrue();
assertThat(backupParam.since()).isNull();
- WebService.Param orgParam = definition.param("organization");
- assertThat(orgParam.isRequired()).isFalse();
- assertThat(orgParam.since()).isEqualTo("6.4");
}
@Test
@@ -96,7 +92,6 @@ public class RestoreActionTest {
assertThat(backuper.restoredSummary.getProfile().getName()).isEqualTo("the-name-in-backup");
JsonAssert.assertJson(response.getInput()).isSimilarTo("{" +
" \"profile\": {" +
- " \"organization\": \"" + db.getDefaultOrganization().getKey() + "\"," +
" \"name\": \"the-name-in-backup\"," +
" \"language\": \"xoo\"," +
" \"languageName\": \"Xoo\"," +
@@ -110,7 +105,7 @@ public class RestoreActionTest {
@Test
public void profile_is_restored_on_specified_organization_with_the_name_provided_in_backup() {
- OrganizationDto org = db.organizations().insert();
+ OrganizationDto org = db.organizations().getDefaultOrganization();
logInAsQProfileAdministrator(org);
TestResponse response = restore("<backup/>", org.getKey());
@@ -118,7 +113,6 @@ public class RestoreActionTest {
assertThat(backuper.restoredSummary.getProfile().getName()).isEqualTo("the-name-in-backup");
JsonAssert.assertJson(response.getInput()).isSimilarTo("{" +
" \"profile\": {" +
- " \"organization\": \"" + org.getKey() + "\"," +
" \"name\": \"the-name-in-backup\"," +
" \"language\": \"xoo\"," +
" \"languageName\": \"Xoo\"," +
@@ -154,27 +148,6 @@ public class RestoreActionTest {
}
@Test
- public void throw_ForbiddenException_if_not_profile_administrator_of_specified_organization() {
- OrganizationDto org = db.organizations().insert();
- logInAsQProfileAdministrator(db.getDefaultOrganization());
-
- expectedException.expect(ForbiddenException.class);
- expectedException.expectMessage("Insufficient privileges");
-
- restore("<backup/>", org.getKey());
- }
-
- @Test
- public void throw_NotFoundException_if_specified_organization_does_not_exist() {
- userSession.logIn();
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage("No organization with key 'missing'");
-
- restore("<backup/>", "missing");
- }
-
- @Test
public void throw_UnauthorizedException_if_not_logged_in() {
userSession.anonymous();
@@ -211,7 +184,7 @@ public class RestoreActionTest {
}
@Override
- public QProfileRestoreSummary restore(DbSession dbSession, Reader backup, OrganizationDto organization, @Nullable String overriddenProfileName) {
+ public QProfileRestoreSummary restore(DbSession dbSession, Reader backup, @Nullable String overriddenProfileName) {
if (restoredSummary != null) {
throw new IllegalStateException("Already restored");
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchActionTest.java
index 1f1d3b56e41..f71dac140d5 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchActionTest.java
@@ -32,7 +32,6 @@ import org.sonar.api.utils.System2;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbTester;
-import org.sonar.db.component.ComponentDto;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.permission.OrganizationPermission;
import org.sonar.db.project.ProjectDto;
@@ -42,7 +41,6 @@ import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.component.ComponentFinder;
-import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
@@ -53,21 +51,16 @@ import org.sonarqube.ws.MediaTypes;
import org.sonarqube.ws.Qualityprofiles.SearchWsResponse;
import org.sonarqube.ws.Qualityprofiles.SearchWsResponse.QualityProfile;
-import static java.lang.String.format;
import static java.util.stream.IntStream.range;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;
import static org.sonar.api.rule.RuleStatus.DEPRECATED;
import static org.sonar.api.utils.DateUtils.parseDateTime;
-import static org.sonar.db.component.ComponentTesting.newModuleDto;
-import static org.sonar.db.organization.OrganizationDto.Subscription.FREE;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.db.qualityprofile.QualityProfileTesting.newQualityProfileDto;
import static org.sonar.server.language.LanguageTesting.newLanguage;
import static org.sonar.test.JsonAssert.assertJson;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_DEFAULTS;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_PROJECT;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_PROJECT_KEY;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
@@ -102,7 +95,7 @@ public class SearchActionTest {
@Test
public void empty_when_no_language_installed() {
WsActionTester ws = new WsActionTester(new SearchAction(userSession, new Languages(), dbClient, qProfileWsSupport, new ComponentFinder(dbClient, null)));
- db.qualityProfiles().insert(db.getDefaultOrganization());
+ db.qualityProfiles().insert();
SearchWsResponse result = call(ws.newRequest());
@@ -111,39 +104,20 @@ public class SearchActionTest {
@Test
public void default_organization() {
- OrganizationDto defaultOrganization = db.getDefaultOrganization();
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile1OnDefaultOrg = db.qualityProfiles().insert(defaultOrganization, p -> p.setLanguage(XOO1.getKey()));
- QProfileDto profile2OnDefaultOrg = db.qualityProfiles().insert(defaultOrganization, p -> p.setLanguage(XOO2.getKey()));
- QProfileDto profileOnAnotherOrg = db.qualityProfiles().insert(anotherOrganization, p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profile1OnDefaultOrg = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profile2OnDefaultOrg = db.qualityProfiles().insert(p -> p.setLanguage(XOO2.getKey()));
SearchWsResponse result = call(ws.newRequest());
assertThat(result.getProfilesList()).extracting(QualityProfile::getKey)
- .containsExactlyInAnyOrder(profile1OnDefaultOrg.getKee(), profile2OnDefaultOrg.getKee())
- .doesNotContain(profileOnAnotherOrg.getKee());
- }
-
- @Test
- public void specific_organization() {
- OrganizationDto defaultOrganization = db.getDefaultOrganization();
- OrganizationDto specificOrganization = db.organizations().insert();
- QProfileDto profile1OnSpecificOrg = db.qualityProfiles().insert(specificOrganization, p -> p.setLanguage(XOO1.getKey()));
- QProfileDto profile2OnSpecificOrg = db.qualityProfiles().insert(specificOrganization, p -> p.setLanguage(XOO2.getKey()));
- QProfileDto profileOnDefaultOrg = db.qualityProfiles().insert(defaultOrganization, p -> p.setLanguage(XOO1.getKey()));
-
- SearchWsResponse result = call(ws.newRequest().setParam(PARAM_ORGANIZATION, specificOrganization.getKey()));
-
- assertThat(result.getProfilesList()).extracting(QualityProfile::getKey)
- .containsExactlyInAnyOrder(profile1OnSpecificOrg.getKee(), profile2OnSpecificOrg.getKee())
- .doesNotContain(profileOnDefaultOrg.getKee());
+ .containsExactlyInAnyOrder(profile1OnDefaultOrg.getKee(), profile2OnDefaultOrg.getKee());
}
@Test
public void filter_on_default_profile() {
- QProfileDto defaultProfile1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
- QProfileDto defaultProfile2 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO2.getKey()));
- QProfileDto nonDefaultProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfile1 = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfile2 = db.qualityProfiles().insert(p -> p.setLanguage(XOO2.getKey()));
+ QProfileDto nonDefaultProfile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
db.qualityProfiles().setAsDefault(defaultProfile1, defaultProfile2);
SearchWsResponse result = call(ws.newRequest().setParam(PARAM_DEFAULTS, "true"));
@@ -155,9 +129,9 @@ public class SearchActionTest {
@Test
public void does_not_filter_when_defaults_is_false() {
- QProfileDto defaultProfile1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
- QProfileDto defaultProfile2 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO2.getKey()));
- QProfileDto nonDefaultProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfile1 = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfile2 = db.qualityProfiles().insert(p -> p.setLanguage(XOO2.getKey()));
+ QProfileDto nonDefaultProfile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
db.qualityProfiles().setAsDefault(defaultProfile1, defaultProfile2);
SearchWsResponse result = call(ws.newRequest().setParam(PARAM_DEFAULTS, "false"));
@@ -168,9 +142,9 @@ public class SearchActionTest {
@Test
public void filter_on_language() {
- QProfileDto profile1OnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
- QProfileDto profile2OnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
- QProfileDto profileOnXoo2 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO2.getKey()));
+ QProfileDto profile1OnXoo1 = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profile2OnXoo1 = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profileOnXoo2 = db.qualityProfiles().insert(p -> p.setLanguage(XOO2.getKey()));
SearchWsResponse result = call(ws.newRequest().setParam(PARAM_LANGUAGE, XOO1.getKey()));
@@ -181,9 +155,9 @@ public class SearchActionTest {
@Test
public void ignore_profiles_on_unknown_language() {
- QProfileDto profile1OnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
- QProfileDto profile2OnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO2.getKey()));
- QProfileDto profileOnUnknownLanguage = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage("unknown"));
+ QProfileDto profile1OnXoo1 = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profile2OnXoo1 = db.qualityProfiles().insert(p -> p.setLanguage(XOO2.getKey()));
+ QProfileDto profileOnUnknownLanguage = db.qualityProfiles().insert(p -> p.setLanguage("unknown"));
SearchWsResponse result = call(ws.newRequest());
@@ -194,10 +168,10 @@ public class SearchActionTest {
@Test
public void filter_on_profile_name() {
- QProfileDto sonarWayOnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setName("Sonar way").setLanguage(XOO1.getKey()));
- QProfileDto sonarWayOnXoo2 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setName("Sonar way").setLanguage(XOO1.getKey()));
- QProfileDto sonarWayInCamelCase = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setName("Sonar Way").setLanguage(XOO2.getKey()));
- QProfileDto anotherProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setName("Another").setLanguage(XOO2.getKey()));
+ QProfileDto sonarWayOnXoo1 = db.qualityProfiles().insert(p -> p.setName("Sonar way").setLanguage(XOO1.getKey()));
+ QProfileDto sonarWayOnXoo2 = db.qualityProfiles().insert(p -> p.setName("Sonar way").setLanguage(XOO1.getKey()));
+ QProfileDto sonarWayInCamelCase = db.qualityProfiles().insert(p -> p.setName("Sonar Way").setLanguage(XOO2.getKey()));
+ QProfileDto anotherProfile = db.qualityProfiles().insert(p -> p.setName("Another").setLanguage(XOO2.getKey()));
SearchWsResponse result = call(ws.newRequest().setParam(PARAM_QUALITY_PROFILE, "Sonar way"));
@@ -208,9 +182,9 @@ public class SearchActionTest {
@Test
public void filter_on_defaults_and_name() {
- QProfileDto sonarWayOnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setName("Sonar way").setLanguage(XOO1.getKey()));
- QProfileDto sonarWayOnXoo2 = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setName("Sonar way").setLanguage(XOO2.getKey()));
- QProfileDto anotherProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setName("Another").setLanguage(XOO2.getKey()));
+ QProfileDto sonarWayOnXoo1 = db.qualityProfiles().insert(p -> p.setName("Sonar way").setLanguage(XOO1.getKey()));
+ QProfileDto sonarWayOnXoo2 = db.qualityProfiles().insert(p -> p.setName("Sonar way").setLanguage(XOO2.getKey()));
+ QProfileDto anotherProfile = db.qualityProfiles().insert(p -> p.setName("Another").setLanguage(XOO2.getKey()));
db.qualityProfiles().setAsDefault(sonarWayOnXoo1, anotherProfile);
SearchWsResponse result = call(ws.newRequest()
@@ -225,9 +199,9 @@ public class SearchActionTest {
@Test
public void filter_on_project_key() {
ProjectDto project = db.components().insertPrivateProjectDto();
- QProfileDto profileOnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO1.getKey()));
- QProfileDto defaultProfileOnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO1.getKey()));
- QProfileDto defaultProfileOnXoo2 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO2.getKey()));
+ QProfileDto profileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfileOnXoo2 = db.qualityProfiles().insert(q -> q.setLanguage(XOO2.getKey()));
db.qualityProfiles().associateWithProject(project, profileOnXoo1);
db.qualityProfiles().setAsDefault(defaultProfileOnXoo1, defaultProfileOnXoo2);
@@ -242,9 +216,9 @@ public class SearchActionTest {
@Test
public void filter_on_project_key_and_default() {
ProjectDto project = db.components().insertPrivateProjectDto();
- QProfileDto profileOnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO1.getKey()));
- QProfileDto defaultProfileOnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO1.getKey()));
- QProfileDto defaultProfileOnXoo2 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO2.getKey()));
+ QProfileDto profileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfileOnXoo2 = db.qualityProfiles().insert(q -> q.setLanguage(XOO2.getKey()));
db.qualityProfiles().associateWithProject(project, profileOnXoo1);
db.qualityProfiles().setAsDefault(defaultProfileOnXoo1, defaultProfileOnXoo2);
@@ -261,9 +235,9 @@ public class SearchActionTest {
@Test
public void filter_on_deprecated_project_key_and_default() {
ProjectDto project = db.components().insertPrivateProjectDto();
- QProfileDto profileOnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO1.getKey()));
- QProfileDto defaultProfileOnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO1.getKey()));
- QProfileDto defaultProfileOnXoo2 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO2.getKey()));
+ QProfileDto profileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfileOnXoo2 = db.qualityProfiles().insert(q -> q.setLanguage(XOO2.getKey()));
db.qualityProfiles().associateWithProject(project, profileOnXoo1);
db.qualityProfiles().setAsDefault(defaultProfileOnXoo1, defaultProfileOnXoo2);
@@ -280,9 +254,9 @@ public class SearchActionTest {
@Test
public void empty_when_filtering_on_project_and_no_language_installed() {
WsActionTester ws = new WsActionTester(new SearchAction(userSession, new Languages(), dbClient, qProfileWsSupport, new ComponentFinder(dbClient, null)));
- db.qualityProfiles().insert(db.getDefaultOrganization());
+ db.qualityProfiles().insert();
ProjectDto project = db.components().insertPrivateProjectDto();
- QProfileDto profileOnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO1.getKey()));
+ QProfileDto profileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
db.qualityProfiles().associateWithProject(project, profileOnXoo1);
SearchWsResponse result = call(ws.newRequest()
@@ -294,16 +268,15 @@ public class SearchActionTest {
@Test
public void actions_when_user_is_global_qprofile_administer() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto customProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey()));
- QProfileDto builtInProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey()).setIsBuiltIn(true));
- QProfileDto defaultProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey()));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto customProfile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto builtInProfile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()).setIsBuiltIn(true));
+ QProfileDto defaultProfile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
db.qualityProfiles().setAsDefault(defaultProfile);
UserDto user = db.users().insertUser();
userSession.logIn(user).addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
- SearchWsResponse result = call(ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey()));
+ SearchWsResponse result = call(ws.newRequest());
assertThat(result.getProfilesList())
.extracting(QualityProfile::getKey, qp -> qp.getActions().getEdit(), qp -> qp.getActions().getCopy(), qp -> qp.getActions().getSetAsDefault(),
@@ -317,19 +290,18 @@ public class SearchActionTest {
@Test
public void actions_when_user_can_edit_profile() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile1 = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey()));
- QProfileDto profile2 = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO2.getKey()));
- QProfileDto profile3 = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO2.getKey()));
- QProfileDto builtInProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO2.getKey()).setIsBuiltIn(true));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile1 = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profile2 = db.qualityProfiles().insert(p -> p.setLanguage(XOO2.getKey()));
+ QProfileDto profile3 = db.qualityProfiles().insert(p -> p.setLanguage(XOO2.getKey()));
+ QProfileDto builtInProfile = db.qualityProfiles().insert(p -> p.setLanguage(XOO2.getKey()).setIsBuiltIn(true));
UserDto user = db.users().insertUser();
GroupDto group = db.users().insertGroup(organization);
db.qualityProfiles().addUserPermission(profile1, user);
db.qualityProfiles().addGroupPermission(profile3, group);
userSession.logIn(user).setGroups(group);
- SearchWsResponse result = call(ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey()));
+ SearchWsResponse result = call(ws.newRequest());
assertThat(result.getProfilesList())
.extracting(QualityProfile::getKey, qp -> qp.getActions().getEdit(), qp -> qp.getActions().getCopy(), qp -> qp.getActions().getSetAsDefault(),
@@ -344,12 +316,10 @@ public class SearchActionTest {
@Test
public void actions_when_not_logged_in() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
userSession.anonymous();
- SearchWsResponse result = call(ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey()));
+ SearchWsResponse result = call(ws.newRequest());
assertThat(result.getProfilesList())
.extracting(QualityProfile::getKey, qp -> qp.getActions().getEdit(), qp -> qp.getActions().getCopy(), qp -> qp.getActions().getSetAsDefault(),
@@ -360,7 +330,7 @@ public class SearchActionTest {
@Test
public void statistics_on_active_rules() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
RuleDefinitionDto rule = db.rules().insertRule(r -> r.setLanguage(XOO1.getKey())).getDefinition();
RuleDefinitionDto deprecatedRule1 = db.rules().insertRule(r -> r.setStatus(DEPRECATED)).getDefinition();
RuleDefinitionDto deprecatedRule2 = db.rules().insertRule(r -> r.setStatus(DEPRECATED)).getDefinition();
@@ -380,8 +350,8 @@ public class SearchActionTest {
public void statistics_on_projects() {
ProjectDto project1 = db.components().insertPrivateProjectDto();
ProjectDto project2 = db.components().insertPrivateProjectDto();
- QProfileDto profileOnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO1.getKey()));
- QProfileDto defaultProfileOnXoo1 = db.qualityProfiles().insert(db.getDefaultOrganization(), q -> q.setLanguage(XOO1.getKey()));
+ QProfileDto profileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfileOnXoo1 = db.qualityProfiles().insert(q -> q.setLanguage(XOO1.getKey()));
db.qualityProfiles().associateWithProject(project1, profileOnXoo1);
db.qualityProfiles().associateWithProject(project2, profileOnXoo1);
db.qualityProfiles().setAsDefault(defaultProfileOnXoo1);
@@ -397,7 +367,6 @@ public class SearchActionTest {
public void map_dates() {
long time = DateUtils.parseDateTime("2016-12-22T19:10:03+0100").getTime();
qualityProfileDb.insert(newQualityProfileDto()
- .setOrganizationUuid(defaultOrganizationProvider.get().getUuid())
.setLanguage(XOO1.getKey())
.setRulesUpdatedAt("2016-12-21T19:10:03+0100")
.setLastUsed(time)
@@ -412,30 +381,6 @@ public class SearchActionTest {
}
@Test
- public void return_qprofile_on_free_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(FREE));
- QProfileDto qProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey()));
-
- SearchWsResponse result = call(ws.newRequest().setParam(PARAM_ORGANIZATION, organization.getKey()));
-
- assertThat(result.getProfilesList()).extracting(QualityProfile::getKey)
- .containsExactlyInAnyOrder(qProfile.getKee());
- }
-
- @Test
- public void return_qprofile_on_paid_organization_when_user_is_member() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto qProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey()));
- UserDto user = db.users().insertUser();
- userSession.logIn(user).addMembership(organization);
-
- SearchWsResponse result = call(ws.newRequest().setParam(PARAM_ORGANIZATION, organization.getKey()));
-
- assertThat(result.getProfilesList()).extracting(QualityProfile::getKey)
- .containsExactlyInAnyOrder(qProfile.getKee());
- }
-
- @Test
public void fail_if_project_does_not_exist() {
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Project 'unknown-project' not found");
@@ -444,53 +389,18 @@ public class SearchActionTest {
}
@Test
- public void fail_if_project_is_on_another_organization() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto anotherOrganization = db.organizations().insert();
- ComponentDto project = db.components().insertPrivateProject(anotherOrganization);
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Project '%s' not found", project.getDbKey()));
-
- call(ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .setParam(PARAM_PROJECT, project.getDbKey()));
- }
-
- @Test
- public void fail_if_organization_does_not_exist() {
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage("No organization with key 'unknown-organization'");
-
- call(ws.newRequest().setParam(PARAM_ORGANIZATION, "unknown-organization"));
- }
-
- @Test
- public void fail_on_paid_organization_when_not_member() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- userSession.logIn();
-
- expectedException.expect(ForbiddenException.class);
- expectedException.expectMessage(format("You're not member of organization '%s'", organization.getKey()));
-
- call(ws.newRequest().setParam(PARAM_ORGANIZATION, organization.getKey()));
- }
-
- @Test
public void json_example() {
- OrganizationDto organization = db.organizations().insertForKey("My Organization");
// languages
Language cs = newLanguage("cs", "C#");
Language java = newLanguage("java", "Java");
Language python = newLanguage("py", "Python");
// profiles
- QProfileDto sonarWayCs = db.qualityProfiles().insert(organization,
+ QProfileDto sonarWayCs = db.qualityProfiles().insert(
p -> p.setName("Sonar way").setKee("AU-TpxcA-iU5OvuD2FL3").setIsBuiltIn(true).setLanguage(cs.getKey()));
- QProfileDto myCompanyProfile = db.qualityProfiles().insert(organization,
- p -> p.setName("My Company Profile").setKee("iU5OvuD2FLz").setLanguage(java.getKey()));
- QProfileDto myBuProfile = db.qualityProfiles().insert(organization,
+ QProfileDto myCompanyProfile = db.qualityProfiles().insert(p -> p.setName("My Company Profile").setKee("iU5OvuD2FLz").setLanguage(java.getKey()));
+ QProfileDto myBuProfile = db.qualityProfiles().insert(
p -> p.setName("My BU Profile").setKee("AU-TpxcA-iU5OvuD2FL1").setParentKee(myCompanyProfile.getKee()).setLanguage(java.getKey()));
- QProfileDto sonarWayPython = db.qualityProfiles().insert(organization,
+ QProfileDto sonarWayPython = db.qualityProfiles().insert(
p -> p.setName("Sonar way").setKee("AU-TpxcB-iU5OvuD2FL7").setIsBuiltIn(true).setLanguage(python.getKey()));
db.qualityProfiles().setAsDefault(sonarWayCs, myCompanyProfile, sonarWayPython);
// rules
@@ -511,7 +421,7 @@ public class SearchActionTest {
.forEach(rule -> db.qualityProfiles().activateRule(sonarWayCs, rule));
// project
range(0, 7)
- .mapToObj(i -> db.components().insertPrivateProjectDto(organization))
+ .mapToObj(i -> db.components().insertPrivateProjectDto())
.forEach(project -> db.qualityProfiles().associateWithProject(project, myBuProfile));
// User
UserDto user = db.users().insertUser();
@@ -521,7 +431,7 @@ public class SearchActionTest {
underTest = new SearchAction(userSession, new Languages(cs, java, python), dbClient, qProfileWsSupport, new ComponentFinder(dbClient, null));
ws = new WsActionTester(underTest);
- String result = ws.newRequest().setParam(PARAM_ORGANIZATION, organization.getKey()).execute().getInput();
+ String result = ws.newRequest().execute().getInput();
assertJson(result).ignoreFields("ruleUpdatedAt", "lastUsed", "userUpdatedAt")
.isSimilarTo(ws.getDef().responseExampleAsString());
}
@@ -541,13 +451,6 @@ public class SearchActionTest {
tuple("6.6", "Add available actions 'edit', 'copy' and 'setAsDefault' and global action 'create'"),
tuple("7.0", "Add available actions 'delete' and 'associateProjects'"));
- WebService.Param organization = definition.param("organization");
- assertThat(organization).isNotNull();
- assertThat(organization.isRequired()).isFalse();
- assertThat(organization.isInternal()).isTrue();
- assertThat(organization.description()).isNotEmpty();
- assertThat(organization.since()).isEqualTo("6.4");
-
WebService.Param defaults = definition.param("defaults");
assertThat(defaults.defaultValue()).isEqualTo("false");
assertThat(defaults.description()).isEqualTo("If set to true, return only the quality profiles marked as default for each language");
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchGroupsActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchGroupsActionTest.java
index 4fbdb03a29e..04fa1fd4506 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchGroupsActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchGroupsActionTest.java
@@ -50,11 +50,9 @@ import static org.sonar.db.user.GroupTesting.newGroupDto;
import static org.sonar.test.JsonAssert.assertJson;
import static org.sonarqube.ws.MediaTypes.JSON;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class SearchGroupsActionTest {
-
private static final String XOO = "xoo";
private static final String FOO = "foo";
private static final Languages LANGUAGES = LanguageTesting.newLanguages(XOO, FOO);
@@ -77,20 +75,19 @@ public class SearchGroupsActionTest {
assertThat(def.isPost()).isFalse();
assertThat(def.isInternal()).isTrue();
assertThat(def.params()).extracting(WebService.Param::key)
- .containsExactlyInAnyOrder("organization", "qualityProfile", "language", "selected", "q", "p", "ps");
+ .containsExactlyInAnyOrder("qualityProfile", "language", "selected", "q", "p", "ps");
}
@Test
public void test_example() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(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")
@@ -103,15 +100,14 @@ public class SearchGroupsActionTest {
@Test
public void search_all_groups() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group1 = db.users().insertGroup(organization);
GroupDto group2 = db.users().insertGroup(organization);
db.qualityProfiles().addGroupPermission(profile, group1);
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")
@@ -125,15 +121,14 @@ public class SearchGroupsActionTest {
@Test
public void search_selected_groups() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group1 = db.users().insertGroup(organization);
GroupDto group2 = db.users().insertGroup(organization);
db.qualityProfiles().addGroupPermission(profile, group1);
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, "selected")
@@ -146,15 +141,14 @@ public class SearchGroupsActionTest {
@Test
public void search_deselected_groups() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
GroupDto group1 = db.users().insertGroup(organization);
GroupDto group2 = db.users().insertGroup(organization);
db.qualityProfiles().addGroupPermission(profile, group1);
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, "deselected")
@@ -167,8 +161,8 @@ public class SearchGroupsActionTest {
@Test
public void search_by_name() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert( p -> p.setLanguage(XOO));
GroupDto group1 = db.users().insertGroup(organization, "sonar-users-project");
GroupDto group2 = db.users().insertGroup(organization, "sonar-users-qprofile");
GroupDto group3 = db.users().insertGroup(organization, "sonar-admin");
@@ -178,7 +172,6 @@ public class SearchGroupsActionTest {
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(TEXT_QUERY, "UsErS")
@@ -191,14 +184,13 @@ public class SearchGroupsActionTest {
@Test
public void group_without_description() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert( 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")
@@ -210,8 +202,8 @@ public class SearchGroupsActionTest {
@Test
public void paging_search() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert( p -> p.setLanguage(XOO));
GroupDto group3 = db.users().insertGroup(organization, "group3");
GroupDto group1 = db.users().insertGroup(organization, "group1");
GroupDto group2 = db.users().insertGroup(organization, "group2");
@@ -220,43 +212,40 @@ public class SearchGroupsActionTest {
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
assertThat(ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "all")
.setParam(PAGE, "1")
.setParam(PAGE_SIZE, "1")
.executeProtobuf(SearchGroupsResponse.class).getGroupsList())
- .extracting(SearchGroupsResponse.Group::getName)
- .containsExactly(group1.getName());
+ .extracting(SearchGroupsResponse.Group::getName)
+ .containsExactly(group1.getName());
assertThat(ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "all")
.setParam(PAGE, "3")
.setParam(PAGE_SIZE, "1")
.executeProtobuf(SearchGroupsResponse.class).getGroupsList())
- .extracting(SearchGroupsResponse.Group::getName)
- .containsExactly(group3.getName());
+ .extracting(SearchGroupsResponse.Group::getName)
+ .containsExactly(group3.getName());
assertThat(ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "all")
.setParam(PAGE, "1")
.setParam(PAGE_SIZE, "10")
.executeProtobuf(SearchGroupsResponse.class).getGroupsList())
- .extracting(SearchGroupsResponse.Group::getName)
- .containsExactly(group1.getName(), group2.getName(), group3.getName());
+ .extracting(SearchGroupsResponse.Group::getName)
+ .containsExactly(group1.getName(), group2.getName(), group3.getName());
}
@Test
public void uses_default_organization_when_no_organization() {
OrganizationDto organization = db.getDefaultOrganization();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ QProfileDto profile = db.qualityProfiles().insert( p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
db.qualityProfiles().addGroupPermission(profile, group);
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
@@ -272,14 +261,13 @@ public class SearchGroupsActionTest {
@Test
public void qp_administers_can_search_groups() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert( p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
db.qualityProfiles().addGroupPermission(profile, group);
userSession.logIn().addPermission(OrganizationPermission.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")
@@ -290,8 +278,8 @@ public class SearchGroupsActionTest {
@Test
public void qp_editors_can_search_groups() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert( p -> p.setLanguage(XOO));
GroupDto group = db.users().insertGroup(organization);
db.qualityProfiles().addGroupPermission(profile, group);
UserDto userAllowedToEditProfile = db.users().insertUser();
@@ -299,7 +287,6 @@ public class SearchGroupsActionTest {
userSession.logIn(userAllowedToEditProfile);
SearchGroupsResponse response = ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "all")
@@ -310,47 +297,28 @@ public class SearchGroupsActionTest {
@Test
public void fail_when_qprofile_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name 'unknown' does not exist in organization '%s'", organization.getKey()));
+ expectedException.expectMessage("Quality Profile for language 'xoo' and name 'unknown' does not exist");
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, "unknown")
.setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute();
- }
-
- @Test
- public void fail_when_qprofile_does_not_belong_to_organization() {
- OrganizationDto organization = db.organizations().insert();
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(anotherOrganization, p -> p.setLanguage(XOO));
- userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_wrong_language() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert( p -> p.setLanguage(XOO));
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'foo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
+ expectedException.expectMessage(format("Quality Profile for language 'foo' and name '%s' does not exist", profile.getName(), organization.getKey()));
ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, FOO)
.executeProtobuf(SearchGroupsResponse.class);
@@ -358,8 +326,8 @@ public class SearchGroupsActionTest {
@Test
public void fail_when_not_enough_permission() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert( p -> p.setLanguage(XOO));
userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_GATES, organization);
expectedException.expect(ForbiddenException.class);
@@ -367,7 +335,6 @@ public class SearchGroupsActionTest {
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchUsersActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchUsersActionTest.java
index 9f90246ba28..064a158a315 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchUsersActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SearchUsersActionTest.java
@@ -51,7 +51,6 @@ import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_
import static org.sonar.test.JsonAssert.assertJson;
import static org.sonarqube.ws.MediaTypes.JSON;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class SearchUsersActionTest {
@@ -79,15 +78,15 @@ public class SearchUsersActionTest {
assertThat(def.isPost()).isFalse();
assertThat(def.isInternal()).isTrue();
assertThat(def.params()).extracting(WebService.Param::key)
- .containsExactlyInAnyOrder("organization", "qualityProfile", "language", "selected", "q", "p", "ps");
+ .containsExactlyInAnyOrder("qualityProfile", "language", "selected", "q", "p", "ps");
}
@Test
public void test_example() {
avatarResolver = new AvatarResolverImpl();
ws = new WsActionTester(new SearchUsersAction(db.getDbClient(), wsSupport, LANGUAGES, avatarResolver));
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user1 = db.users().insertUser(u -> u.setLogin("admin").setName("Administrator").setEmail("admin@email.com"));
UserDto user2 = db.users().insertUser(u -> u.setLogin("george.orwell").setName("George Orwell").setEmail("george@orwell.com"));
db.organizations().addMember(organization, user1);
@@ -96,7 +95,6 @@ public class SearchUsersActionTest {
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")
@@ -109,8 +107,8 @@ public class SearchUsersActionTest {
@Test
public void search_all_users() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user1 = db.users().insertUser(u -> u.setEmail("user1@email.com"));
UserDto user2 = db.users().insertUser(u -> u.setEmail("user2@email.com"));
db.organizations().addMember(organization, user1);
@@ -119,13 +117,13 @@ public class SearchUsersActionTest {
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
SearchUsersResponse response = ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "all")
.executeProtobuf(SearchUsersResponse.class);
- assertThat(response.getUsersList()).extracting(SearchUsersResponse.User::getLogin, SearchUsersResponse.User::getName, SearchUsersResponse.User::getAvatar, SearchUsersResponse.User::getSelected)
+ assertThat(response.getUsersList())
+ .extracting(SearchUsersResponse.User::getLogin, SearchUsersResponse.User::getName, SearchUsersResponse.User::getAvatar, SearchUsersResponse.User::getSelected)
.containsExactlyInAnyOrder(
tuple(user1.getLogin(), user1.getName(), "user1@email.com_avatar", true),
tuple(user2.getLogin(), user2.getName(), "user2@email.com_avatar", false));
@@ -133,8 +131,8 @@ public class SearchUsersActionTest {
@Test
public void search_selected_users() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user1 = db.users().insertUser();
UserDto user2 = db.users().insertUser();
db.organizations().addMember(organization, user1);
@@ -143,7 +141,6 @@ public class SearchUsersActionTest {
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
SearchUsersResponse response = ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "selected")
@@ -156,8 +153,8 @@ public class SearchUsersActionTest {
@Test
public void search_deselected_users() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user1 = db.users().insertUser();
UserDto user2 = db.users().insertUser();
db.organizations().addMember(organization, user1);
@@ -166,7 +163,6 @@ public class SearchUsersActionTest {
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
SearchUsersResponse response = ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "deselected")
@@ -179,8 +175,8 @@ public class SearchUsersActionTest {
@Test
public void search_by_login() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user1 = db.users().insertUser();
UserDto user2 = db.users().insertUser();
db.organizations().addMember(organization, user1);
@@ -189,7 +185,6 @@ public class SearchUsersActionTest {
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
SearchUsersResponse response = ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(TEXT_QUERY, user1.getLogin())
@@ -202,8 +197,8 @@ public class SearchUsersActionTest {
@Test
public void search_by_name() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user1 = db.users().insertUser(u -> u.setName("John Doe"));
UserDto user2 = db.users().insertUser(u -> u.setName("Jane Doe"));
UserDto user3 = db.users().insertUser(u -> u.setName("John Smith"));
@@ -214,7 +209,6 @@ public class SearchUsersActionTest {
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
SearchUsersResponse response = ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(TEXT_QUERY, "ohn")
@@ -227,15 +221,14 @@ public class SearchUsersActionTest {
@Test
public void user_without_email() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser(u -> u.setEmail(null));
db.organizations().addMember(organization, user);
db.qualityProfiles().addUserPermission(profile, user);
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
SearchUsersResponse response = ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "all")
@@ -247,8 +240,8 @@ public class SearchUsersActionTest {
@Test
public void paging_search() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user2 = db.users().insertUser(u -> u.setName("user2"));
UserDto user3 = db.users().insertUser(u -> u.setName("user3"));
UserDto user1 = db.users().insertUser(u -> u.setName("user1"));
@@ -260,43 +253,40 @@ public class SearchUsersActionTest {
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
assertThat(ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "all")
.setParam(PAGE, "1")
.setParam(PAGE_SIZE, "1")
.executeProtobuf(SearchUsersResponse.class).getUsersList())
- .extracting(SearchUsersResponse.User::getLogin)
- .containsExactly(user1.getLogin());
+ .extracting(SearchUsersResponse.User::getLogin)
+ .containsExactly(user1.getLogin());
assertThat(ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "all")
.setParam(PAGE, "3")
.setParam(PAGE_SIZE, "1")
.executeProtobuf(SearchUsersResponse.class).getUsersList())
- .extracting(SearchUsersResponse.User::getLogin)
- .containsExactly(user3.getLogin());
+ .extracting(SearchUsersResponse.User::getLogin)
+ .containsExactly(user3.getLogin());
assertThat(ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "all")
.setParam(PAGE, "1")
.setParam(PAGE_SIZE, "10")
.executeProtobuf(SearchUsersResponse.class).getUsersList())
- .extracting(SearchUsersResponse.User::getLogin)
- .containsExactly(user1.getLogin(), user2.getLogin(), user3.getLogin());
+ .extracting(SearchUsersResponse.User::getLogin)
+ .containsExactly(user1.getLogin(), user2.getLogin(), user3.getLogin());
}
@Test
public void uses_default_organization_when_no_organization() {
OrganizationDto organization = db.getDefaultOrganization();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user1 = db.users().insertUser();
db.organizations().addMember(organization, user1);
db.qualityProfiles().addUserPermission(profile, user1);
@@ -313,14 +303,13 @@ public class SearchUsersActionTest {
@Test
public void qp_administers_can_search_users() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
SearchUsersResponse response = ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "all")
@@ -331,74 +320,51 @@ public class SearchUsersActionTest {
@Test
public void qp_editors_can_search_users() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
- db.organizations().addMember(organization, user);
+ db.organizations().addMember(db.organizations().getDefaultOrganization(), user);
UserDto userAllowedToEditProfile = db.users().insertUser();
db.qualityProfiles().addUserPermission(profile, userAllowedToEditProfile);
userSession.logIn(userAllowedToEditProfile);
SearchUsersResponse response = ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
.setParam(SELECTED, "all")
.executeProtobuf(SearchUsersResponse.class);
- assertThat(response.getUsersList()).extracting(SearchUsersResponse.User::getLogin).containsExactlyInAnyOrder(user.getLogin());
+ assertThat(response.getUsersList()).extracting(SearchUsersResponse.User::getLogin).containsExactlyInAnyOrder(user.getLogin(), userAllowedToEditProfile.getLogin());
}
@Test
public void fail_when_qprofile_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name 'unknown' does not exist in organization '%s'", organization.getKey()));
+ expectedException.expectMessage("Quality Profile for language 'xoo' and name 'unknown' does not exist");
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, "unknown")
.setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .execute();
- }
-
- @Test
- public void fail_when_qprofile_does_not_belong_to_organization() {
- OrganizationDto organization = db.organizations().insert();
- UserDto user = db.users().insertUser();
- db.organizations().addMember(organization, user);
- OrganizationDto anotherOrganization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(anotherOrganization, p -> p.setLanguage(XOO));
- userSession.logIn().addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'xoo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
-
- ws.newRequest()
- .setParam(PARAM_QUALITY_PROFILE, profile.getName())
- .setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
@Test
public void fail_when_wrong_language() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user1 = db.users().insertUser();
db.organizations().addMember(organization, user1);
db.qualityProfiles().addUserPermission(profile, user1);
userSession.logIn().addPermission(ADMINISTER_QUALITY_PROFILES, organization);
expectedException.expect(NotFoundException.class);
- expectedException.expectMessage(format("Quality Profile for language 'foo' and name '%s' does not exist in organization '%s'", profile.getName(), organization.getKey()));
+ expectedException.expectMessage(format("Quality Profile for language 'foo' and name '%s' does not exist", profile.getName()));
ws.newRequest()
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, FOO)
.executeProtobuf(SearchUsersResponse.class);
@@ -406,8 +372,8 @@ public class SearchUsersActionTest {
@Test
public void fail_when_not_enough_permission() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn(db.users().insertUser()).addPermission(OrganizationPermission.ADMINISTER_QUALITY_GATES, organization);
@@ -417,7 +383,6 @@ public class SearchUsersActionTest {
ws.newRequest()
.setParam(PARAM_QUALITY_PROFILE, profile.getName())
.setParam(PARAM_LANGUAGE, XOO)
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.execute();
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SetDefaultActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SetDefaultActionTest.java
index 234123245b5..9253fa22ea0 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SetDefaultActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/SetDefaultActionTest.java
@@ -29,7 +29,6 @@ import org.sonar.api.server.ws.WebService.Param;
import org.sonar.db.DbClient;
import org.sonar.db.DbTester;
import org.sonar.db.organization.OrganizationDto;
-import org.sonar.db.organization.OrganizationTesting;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.qualityprofile.QualityProfileTesting;
import org.sonar.server.exceptions.ForbiddenException;
@@ -46,7 +45,6 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_KEY;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_LANGUAGE;
-import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_QUALITY_PROFILE;
public class SetDefaultActionTest {
@@ -81,21 +79,12 @@ public class SetDefaultActionTest {
defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
dbClient = db.getDbClient();
wsSupport = new QProfileWsSupport(dbClient, userSessionRule, defaultOrganizationProvider);
- organization = OrganizationTesting.newOrganizationDto();
- db.organizations().insert(organization);
+ organization = db.organizations().getDefaultOrganization();
underTest = new SetDefaultAction(LanguageTesting.newLanguages(XOO_1_KEY, XOO_2_KEY), dbClient, userSessionRule, wsSupport);
- String organizationUuid = organization.getUuid();
- xoo1Profile = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organizationUuid)
- .setLanguage(XOO_1_KEY);
- xoo2Profile = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organizationUuid)
- .setLanguage(XOO_2_KEY);
- xoo2Profile2 = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organizationUuid)
- .setLanguage(XOO_2_KEY)
- .setParentKee(xoo2Profile.getKee());
+ xoo1Profile = QualityProfileTesting.newQualityProfileDto().setLanguage(XOO_1_KEY);
+ xoo2Profile = QualityProfileTesting.newQualityProfileDto().setLanguage(XOO_2_KEY);
+ xoo2Profile2 = QualityProfileTesting.newQualityProfileDto().setLanguage(XOO_2_KEY).setParentKee(xoo2Profile.getKee());
dbClient.qualityProfileDao().insert(db.getSession(), xoo1Profile, xoo2Profile, xoo2Profile2);
db.commit();
db.qualityProfiles().setAsDefault(xoo1Profile, xoo2Profile2);
@@ -109,64 +98,25 @@ public class SetDefaultActionTest {
assertThat(definition).isNotNull();
assertThat(definition.isPost()).isTrue();
- assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("qualityProfile", "language", "organization");
- assertThat(definition.param("organization").since()).isEqualTo("6.4");
+ assertThat(definition.params()).extracting(Param::key).containsExactlyInAnyOrder("qualityProfile", "language");
}
@Test
public void set_default_profile_using_language_and_name() {
logInAsQProfileAdministrator();
- checkDefaultProfile(organization, XOO_1_KEY, xoo1Profile.getKee());
- checkDefaultProfile(organization, XOO_2_KEY, xoo2Profile2.getKee());
+ checkDefaultProfile(XOO_1_KEY, xoo1Profile.getKee());
+ checkDefaultProfile(XOO_2_KEY, xoo2Profile2.getKee());
TestResponse response = ws.newRequest().setMethod("POST")
.setParam("language", xoo2Profile.getLanguage())
.setParam("qualityProfile", xoo2Profile.getName())
- .setParam("organization", organization.getKey())
.execute();
assertThat(response.getInput()).isEmpty();
- checkDefaultProfile(organization, XOO_1_KEY, xoo1Profile.getKee());
- checkDefaultProfile(organization, XOO_2_KEY, xoo2Profile.getKee());
- }
-
- @Test
- public void should_not_change_other_organizations() {
- OrganizationDto organization1 = db.organizations().insert();
- OrganizationDto organization2 = db.organizations().insert();
-
- userSessionRule
- .logIn()
- .addPermission(ADMINISTER_QUALITY_PROFILES, organization1.getUuid());
-
- QProfileDto profileOrg1Old = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization1.getUuid())
- .setLanguage(XOO_1_KEY);
- QProfileDto profileOrg1New = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization1.getUuid())
- .setLanguage(XOO_1_KEY);
- QProfileDto profileOrg2 = QualityProfileTesting.newQualityProfileDto()
- .setOrganizationUuid(organization2.getUuid())
- .setLanguage(XOO_1_KEY);
- db.qualityProfiles().insert(profileOrg1Old, profileOrg1New, profileOrg2);
- db.qualityProfiles().setAsDefault(profileOrg1Old, profileOrg2);
-
- checkDefaultProfile(organization1, XOO_1_KEY, profileOrg1Old.getKee());
- checkDefaultProfile(organization2, XOO_1_KEY, profileOrg2.getKee());
-
- TestResponse response = ws.newRequest().setMethod("POST")
- .setParam("language", profileOrg1New.getLanguage())
- .setParam("qualityProfile", profileOrg1New.getName())
- .setParam("organization", organization1.getKey())
- .execute();
-
- assertThat(response.getInput()).isEmpty();
- assertThat(response.getStatus()).isEqualTo(204);
-
- checkDefaultProfile(organization1, XOO_1_KEY, profileOrg1New.getKee());
- checkDefaultProfile(organization2, XOO_1_KEY, profileOrg2.getKee());
+ checkDefaultProfile(XOO_1_KEY, xoo1Profile.getKee());
+ checkDefaultProfile(XOO_2_KEY, xoo2Profile.getKee());
}
@Test
@@ -181,8 +131,8 @@ public class SetDefaultActionTest {
Fail.failBecauseExceptionWasNotThrown(NotFoundException.class);
} catch (NotFoundException nfe) {
assertThat(nfe).hasMessage("Quality Profile for language 'xoo2' and name 'Unknown' does not exist");
- checkDefaultProfile(organization, XOO_1_KEY, xoo1Profile.getKee());
- checkDefaultProfile(organization, XOO_2_KEY, xoo2Profile2.getKee());
+ checkDefaultProfile(XOO_1_KEY, xoo1Profile.getKee());
+ checkDefaultProfile(XOO_2_KEY, xoo2Profile2.getKee());
}
}
@@ -194,7 +144,6 @@ public class SetDefaultActionTest {
expectedException.expectMessage("Insufficient privileges");
ws.newRequest().setMethod("POST")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_QUALITY_PROFILE, xoo2Profile.getName())
.setParam(PARAM_LANGUAGE, xoo2Profile.getLanguage())
.execute();
@@ -216,7 +165,7 @@ public class SetDefaultActionTest {
.addPermission(ADMINISTER_QUALITY_PROFILES, organization.getUuid());
}
- private void checkDefaultProfile(OrganizationDto organization, String language, String key) {
- assertThat(dbClient.qualityProfileDao().selectDefaultProfile(db.getSession(), organization, language).getKee()).isEqualTo(key);
+ private void checkDefaultProfile(String language, String key) {
+ assertThat(dbClient.qualityProfileDao().selectDefaultProfile(db.getSession(), language).getKee()).isEqualTo(key);
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ShowActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ShowActionTest.java
index 2a9da814cf6..600c8a0cf0a 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ShowActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/qualityprofile/ws/ShowActionTest.java
@@ -33,7 +33,6 @@ import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.es.EsTester;
-import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
@@ -47,12 +46,10 @@ import org.sonarqube.ws.Qualityprofiles.ShowResponse;
import org.sonarqube.ws.Qualityprofiles.ShowResponse.CompareToSonarWay;
import org.sonarqube.ws.Qualityprofiles.ShowResponse.QualityProfile;
-import static java.lang.String.format;
import static java.util.stream.IntStream.range;
import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.api.rule.RuleStatus.DEPRECATED;
import static org.sonar.api.utils.DateUtils.parseDateTime;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.server.language.LanguageTesting.newLanguage;
import static org.sonar.test.JsonAssert.assertJson;
import static org.sonarqube.ws.client.qualityprofile.QualityProfileWsParameters.PARAM_COMPARE_TO_SONAR_WAY;
@@ -82,7 +79,7 @@ public class ShowActionTest {
@Test
public void profile_info() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
ShowResponse result = call(ws.newRequest().setParam(PARAM_KEY, profile.getKee()));
@@ -94,7 +91,7 @@ public class ShowActionTest {
@Test
public void default_profile() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
db.qualityProfiles().setAsDefault(profile);
ShowResponse result = call(ws.newRequest().setParam(PARAM_KEY, profile.getKee()));
@@ -104,8 +101,8 @@ public class ShowActionTest {
@Test
public void non_default_profile() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
- QProfileDto defaultProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto defaultProfile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
db.qualityProfiles().setAsDefault(defaultProfile);
ShowResponse result = call(ws.newRequest().setParam(PARAM_KEY, profile.getKee()));
@@ -116,7 +113,7 @@ public class ShowActionTest {
@Test
public void map_dates() {
long time = DateUtils.parseDateTime("2016-12-22T19:10:03+0100").getTime();
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p
+ QProfileDto profile = db.qualityProfiles().insert(p -> p
.setLanguage(XOO1.getKey())
.setRulesUpdatedAt("2016-12-21T19:10:03+0100")
.setLastUsed(time)
@@ -131,7 +128,7 @@ public class ShowActionTest {
@Test
public void statistics() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
// Active rules
range(0, 10)
.mapToObj(i -> db.rules().insertRule(r -> r.setLanguage(XOO1.getKey())).getDefinition())
@@ -154,8 +151,8 @@ public class ShowActionTest {
@Test
public void compare_to_sonar_way_profile() {
- QProfileDto sonarWayProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey()));
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto sonarWayProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
RuleDefinitionDto commonRule = db.rules().insertRule(r -> r.setLanguage(XOO1.getKey())).getDefinition();
RuleDefinitionDto sonarWayRule1 = db.rules().insertRule(r -> r.setLanguage(XOO1.getKey())).getDefinition();
RuleDefinitionDto sonarWayRule2 = db.rules().insertRule(r -> r.setLanguage(XOO1.getKey())).getDefinition();
@@ -184,8 +181,8 @@ public class ShowActionTest {
@Test
public void compare_to_sonar_way_profile_when_same_active_rules() {
- QProfileDto sonarWayProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey()));
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto sonarWayProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
RuleDefinitionDto commonRule = db.rules().insertRule(r -> r.setLanguage(XOO1.getKey())).getDefinition();
db.qualityProfiles().activateRule(profile, commonRule);
db.qualityProfiles().activateRule(sonarWayProfile, commonRule);
@@ -204,9 +201,8 @@ public class ShowActionTest {
@Test
public void no_comparison_when_sonar_way_does_not_exist() {
- QProfileDto anotherSonarWayProfile = db.qualityProfiles().insert(db.getDefaultOrganization(),
- p -> p.setIsBuiltIn(true).setName("Another Sonar way").setLanguage(XOO1.getKey()));
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto anotherSonarWayProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true).setName("Another Sonar way").setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
ShowResponse result = call(ws.newRequest()
.setParam(PARAM_KEY, profile.getKee())
@@ -217,8 +213,8 @@ public class ShowActionTest {
@Test
public void no_comparison_when_profile_is_built_in() {
- QProfileDto sonarWayProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey()));
- QProfileDto anotherBuiltInProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(true).setLanguage(XOO1.getKey()));
+ QProfileDto sonarWayProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey()));
+ QProfileDto anotherBuiltInProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true).setLanguage(XOO1.getKey()));
ShowResponse result = call(ws.newRequest()
.setParam(PARAM_KEY, anotherBuiltInProfile.getKee())
@@ -229,8 +225,8 @@ public class ShowActionTest {
@Test
public void no_comparison_if_sonar_way_is_not_built_in() {
- QProfileDto sonarWayProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(false).setName("Sonar way").setLanguage(XOO1.getKey()));
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto sonarWayProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(false).setName("Sonar way").setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
ShowResponse result = call(ws.newRequest()
.setParam(PARAM_KEY, profile.getKee())
@@ -241,8 +237,8 @@ public class ShowActionTest {
@Test
public void no_comparison_when_param_is_false() {
- QProfileDto sonarWayProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey()));
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto sonarWayProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
ShowResponse result = call(ws.newRequest()
.setParam(PARAM_KEY, profile.getKee())
@@ -253,8 +249,8 @@ public class ShowActionTest {
@Test
public void compare_to_sonarqube_way_profile() {
- QProfileDto sonarWayProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(true).setName("SonarQube way").setLanguage(XOO1.getKey()));
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto sonarWayProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true).setName("SonarQube way").setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
CompareToSonarWay result = call(ws.newRequest()
.setParam(PARAM_KEY, profile.getKee())
@@ -268,9 +264,9 @@ public class ShowActionTest {
@Test
public void compare_to_sonar_way_over_sonarqube_way() {
- QProfileDto sonarWayProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey()));
- QProfileDto sonarQubeWayProfile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setIsBuiltIn(true).setName("SonarQube way").setLanguage(XOO1.getKey()));
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setLanguage(XOO1.getKey()));
+ QProfileDto sonarWayProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true).setName("Sonar way").setLanguage(XOO1.getKey()));
+ QProfileDto sonarQubeWayProfile = db.qualityProfiles().insert(p -> p.setIsBuiltIn(true).setName("SonarQube way").setLanguage(XOO1.getKey()));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
CompareToSonarWay result = call(ws.newRequest()
.setParam(PARAM_KEY, profile.getKee())
@@ -284,8 +280,8 @@ public class ShowActionTest {
@Test
public void show_on_paid_organization() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(XOO1.getKey()));
+ OrganizationDto organization = db.organizations().getDefaultOrganization();
+ QProfileDto qualityProfile = db.qualityProfiles().insert(p -> p.setLanguage(XOO1.getKey()));
UserDto user = db.users().insertUser();
db.organizations().addMember(organization, user);
userSession.logIn(user);
@@ -299,7 +295,7 @@ public class ShowActionTest {
@Test
public void fail_if_profile_language_is_not_supported() {
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p.setKee("unknown-profile").setLanguage("kotlin"));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setKee("unknown-profile").setLanguage("kotlin"));
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Quality Profile with key 'unknown-profile' does not exist");
@@ -316,24 +312,13 @@ public class ShowActionTest {
}
@Test
- public void fail_on_paid_organization_when_not_member() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
-
- expectedException.expect(ForbiddenException.class);
- expectedException.expectMessage(format("You're not member of organization '%s'", organization.getKey()));
-
- call(ws.newRequest().setParam(PARAM_KEY, qualityProfile.getKee()));
- }
-
- @Test
public void json_example() {
Language cs = newLanguage("cs", "C#");
- QProfileDto parentProfile = db.qualityProfiles().insert(db.getDefaultOrganization(),
+ QProfileDto parentProfile = db.qualityProfiles().insert(
p -> p.setKee("AU-TpxcA-iU5OvuD2FL1")
.setName("Parent Company Profile")
.setLanguage(cs.getKey()));
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization(), p -> p
+ QProfileDto profile = db.qualityProfiles().insert(p -> p
.setKee("AU-TpxcA-iU5OvuD2FL3")
.setName("My Company Profile")
.setLanguage(cs.getKey())
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleCreatorTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleCreatorTest.java
index a9f4d089c82..569bb2b7abc 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleCreatorTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleCreatorTest.java
@@ -75,8 +75,7 @@ public class RuleCreatorTest {
private DbSession dbSession = dbTester.getSession();
private UuidFactory uuidFactory = new SequenceUuidFactory();
- private RuleCreator underTest = new RuleCreator(system2, new RuleIndexer(es.client(), dbTester.getDbClient()), dbTester.getDbClient(), newFullTypeValidations(),
- TestDefaultOrganizationProvider.from(dbTester), uuidFactory);
+ private RuleCreator underTest = new RuleCreator(system2, new RuleIndexer(es.client(), dbTester.getDbClient()), dbTester.getDbClient(), newFullTypeValidations(), uuidFactory);
@Test
public void create_custom_rule() {
@@ -91,7 +90,7 @@ public class RuleCreatorTest {
.setParameters(ImmutableMap.of("regex", "a.*"));
RuleKey customRuleKey = underTest.create(dbSession, newRule);
- RuleDto rule = dbTester.getDbClient().ruleDao().selectOrFailByKey(dbSession, dbTester.getDefaultOrganization(), customRuleKey);
+ RuleDto rule = dbTester.getDbClient().ruleDao().selectOrFailByKey(dbSession, customRuleKey);
assertThat(rule).isNotNull();
assertThat(rule.getKey()).isEqualTo(RuleKey.of("java", "CUSTOM_RULE"));
assertThat(rule.getPluginKey()).isEqualTo("sonarjava");
@@ -210,7 +209,7 @@ public class RuleCreatorTest {
List<RuleKey> customRuleKeys = underTest.create(dbSession, Arrays.asList(firstRule, secondRule));
- List<RuleDto> rules = dbTester.getDbClient().ruleDao().selectByKeys(dbSession, dbTester.getDefaultOrganization(), customRuleKeys);
+ List<RuleDto> rules = dbTester.getDbClient().ruleDao().selectByKeys(dbSession, customRuleKeys);
assertThat(rules).hasSize(2);
assertThat(rules).asList()
@@ -512,7 +511,7 @@ public class RuleCreatorTest {
}
private RuleDto createTemplateRule() {
- RuleDto templateRule = RuleTesting.newDto(RuleKey.of("java", "S001"), dbTester.getDefaultOrganization())
+ RuleDto templateRule = RuleTesting.newDto(RuleKey.of("java", "S001"))
.setIsTemplate(true)
.setLanguage("java")
.setPluginKey("sonarjava")
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleDescriptionFormatterTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleDescriptionFormatterTest.java
index 8865be5c100..a27b4e3f16e 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleDescriptionFormatterTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleDescriptionFormatterTest.java
@@ -19,7 +19,6 @@
*/
package org.sonar.server.rule;
-import com.google.common.collect.Sets;
import org.junit.Test;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleUpdaterTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleUpdaterTest.java
index f2a539aec00..8450a557ab8 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleUpdaterTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/RuleUpdaterTest.java
@@ -19,14 +19,12 @@
*/
package org.sonar.server.rule;
-import com.google.common.base.Function;
-import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import java.util.List;
import java.util.Map;
-import javax.annotation.Nonnull;
+import java.util.stream.Collectors;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -92,18 +90,17 @@ public class RuleUpdaterTest {
dbSession.commit();
RuleUpdate update = createForPluginRule(RULE_KEY)
- .setTags(Sets.newHashSet("java9"))
- .setOrganization(db.getDefaultOrganization());
+ .setTags(Sets.newHashSet("java9"));
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Rule with REMOVED status cannot be updated: squid:S001");
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ underTest.update(dbSession, update, userSessionRule);
}
@Test
public void no_changes() {
- RuleDto ruleDto = RuleTesting.newDto(RULE_KEY, db.getDefaultOrganization())
+ RuleDto ruleDto = RuleTesting.newDto(RULE_KEY)
// the following fields are not supposed to be updated
.setNoteData("my *note*")
.setNoteUserUuid("me")
@@ -117,10 +114,10 @@ public class RuleUpdaterTest {
RuleUpdate update = createForPluginRule(RULE_KEY);
assertThat(update.isEmpty()).isTrue();
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ underTest.update(dbSession, update, userSessionRule);
dbSession.clearCache();
- RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, db.getDefaultOrganization(), RULE_KEY);
+ RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, RULE_KEY);
assertThat(rule.getNoteData()).isEqualTo("my *note*");
assertThat(rule.getNoteUserUuid()).isEqualTo("me");
assertThat(rule.getTags()).containsOnly("tag1");
@@ -134,7 +131,7 @@ public class RuleUpdaterTest {
UserDto user = db.users().insertUser();
userSessionRule.logIn(user);
- RuleDto ruleDto = RuleTesting.newDto(RULE_KEY, db.getDefaultOrganization())
+ RuleDto ruleDto = RuleTesting.newDto(RULE_KEY)
.setNoteData(null)
.setNoteUserUuid(null)
@@ -148,12 +145,11 @@ public class RuleUpdaterTest {
dbSession.commit();
RuleUpdate update = createForPluginRule(RULE_KEY)
- .setMarkdownNote("my *note*")
- .setOrganization(db.getDefaultOrganization());
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ .setMarkdownNote("my *note*");
+ underTest.update(dbSession, update, userSessionRule);
dbSession.clearCache();
- RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, db.getDefaultOrganization(), RULE_KEY);
+ RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, RULE_KEY);
assertThat(rule.getNoteData()).isEqualTo("my *note*");
assertThat(rule.getNoteUserUuid()).isEqualTo(user.getUuid());
assertThat(rule.getNoteCreatedAt()).isNotNull();
@@ -167,7 +163,7 @@ public class RuleUpdaterTest {
@Test
public void remove_markdown_note() {
- RuleDto ruleDto = RuleTesting.newDto(RULE_KEY, db.getDefaultOrganization())
+ RuleDto ruleDto = RuleTesting.newDto(RULE_KEY)
.setNoteData("my *note*")
.setNoteUserUuid("me");
db.rules().insert(ruleDto.getDefinition());
@@ -175,12 +171,11 @@ public class RuleUpdaterTest {
dbSession.commit();
RuleUpdate update = createForPluginRule(RULE_KEY)
- .setMarkdownNote(null)
- .setOrganization(db.getDefaultOrganization());
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ .setMarkdownNote(null);
+ underTest.update(dbSession, update, userSessionRule);
dbSession.clearCache();
- RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, db.getDefaultOrganization(), RULE_KEY);
+ RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, RULE_KEY);
assertThat(rule.getNoteData()).isNull();
assertThat(rule.getNoteUserUuid()).isNull();
assertThat(rule.getNoteCreatedAt()).isNull();
@@ -190,29 +185,28 @@ public class RuleUpdaterTest {
@Test
public void set_tags() {
// insert db
- db.rules().insert(RuleTesting.newDto(RULE_KEY, db.getDefaultOrganization())
+ db.rules().insert(RuleTesting.newDto(RULE_KEY)
.setTags(Sets.newHashSet("security"))
.setSystemTags(Sets.newHashSet("java8", "javadoc")).getDefinition());
dbSession.commit();
// java8 is a system tag -> ignore
RuleUpdate update = createForPluginRule(RULE_KEY)
- .setTags(Sets.newHashSet("bug", "java8"))
- .setOrganization(db.getDefaultOrganization());
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ .setTags(Sets.newHashSet("bug", "java8"));
+ underTest.update(dbSession, update, userSessionRule);
- RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, db.getDefaultOrganization(), RULE_KEY);
+ RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, RULE_KEY);
assertThat(rule.getTags()).containsOnly("bug");
assertThat(rule.getSystemTags()).containsOnly("java8", "javadoc");
// verify that tags are indexed in index
- List<String> tags = ruleIndex.listTags(db.getDefaultOrganization(), null, 10);
+ List<String> tags = ruleIndex.listTags(null, 10);
assertThat(tags).containsExactly("bug", "java8", "javadoc");
}
@Test
public void remove_tags() {
- RuleDto ruleDto = RuleTesting.newDto(RULE_KEY, db.getDefaultOrganization())
+ RuleDto ruleDto = RuleTesting.newDto(RULE_KEY)
.setUuid("57a3af91-32f8-48b0-9e11-0eac14ffa915")
.setTags(Sets.newHashSet("security"))
.setSystemTags(Sets.newHashSet("java8", "javadoc"));
@@ -221,17 +215,16 @@ public class RuleUpdaterTest {
dbSession.commit();
RuleUpdate update = createForPluginRule(RULE_KEY)
- .setTags(null)
- .setOrganization(db.getDefaultOrganization());
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ .setTags(null);
+ underTest.update(dbSession, update, userSessionRule);
dbSession.clearCache();
- RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, db.getDefaultOrganization(), RULE_KEY);
+ RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, RULE_KEY);
assertThat(rule.getTags()).isEmpty();
assertThat(rule.getSystemTags()).containsOnly("java8", "javadoc");
// verify that tags are indexed in index
- List<String> tags = ruleIndex.listTags(db.getDefaultOrganization(), null, 10);
+ List<String> tags = ruleIndex.listTags(null, 10);
assertThat(tags).containsExactly("java8", "javadoc");
}
@@ -245,13 +238,12 @@ public class RuleUpdaterTest {
DefaultDebtRemediationFunction fn = new DefaultDebtRemediationFunction(DebtRemediationFunction.Type.CONSTANT_ISSUE, null, "1min");
RuleUpdate update = createForPluginRule(RULE_KEY)
- .setDebtRemediationFunction(fn)
- .setOrganization(db.getDefaultOrganization());
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ .setDebtRemediationFunction(fn);
+ underTest.update(dbSession, update, userSessionRule);
dbSession.clearCache();
// verify debt is overridden
- RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, db.getDefaultOrganization(), RULE_KEY);
+ RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, RULE_KEY);
assertThat(rule.getRemediationFunction()).isEqualTo(DebtRemediationFunction.Type.CONSTANT_ISSUE.name());
assertThat(rule.getRemediationGapMultiplier()).isNull();
assertThat(rule.getRemediationBaseEffort()).isEqualTo("1min");
@@ -270,13 +262,12 @@ public class RuleUpdaterTest {
dbSession.commit();
RuleUpdate update = createForPluginRule(RULE_KEY)
- .setDebtRemediationFunction(new DefaultDebtRemediationFunction(DebtRemediationFunction.Type.LINEAR, "2d", null))
- .setOrganization(db.getDefaultOrganization());
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ .setDebtRemediationFunction(new DefaultDebtRemediationFunction(DebtRemediationFunction.Type.LINEAR, "2d", null));
+ underTest.update(dbSession, update, userSessionRule);
dbSession.clearCache();
// verify debt is overridden
- RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, db.getDefaultOrganization(), RULE_KEY);
+ RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, RULE_KEY);
assertThat(rule.getRemediationFunction()).isEqualTo(DebtRemediationFunction.Type.LINEAR.name());
assertThat(rule.getRemediationGapMultiplier()).isEqualTo("2d");
assertThat(rule.getRemediationBaseEffort()).isNull();
@@ -295,13 +286,12 @@ public class RuleUpdaterTest {
dbSession.commit();
RuleUpdate update = createForPluginRule(RULE_KEY)
- .setDebtRemediationFunction(new DefaultDebtRemediationFunction(DebtRemediationFunction.Type.CONSTANT_ISSUE, null, "10min"))
- .setOrganization(db.getDefaultOrganization());
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ .setDebtRemediationFunction(new DefaultDebtRemediationFunction(DebtRemediationFunction.Type.CONSTANT_ISSUE, null, "10min"));
+ underTest.update(dbSession, update, userSessionRule);
dbSession.clearCache();
// verify debt is overridden
- RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, db.getDefaultOrganization(), RULE_KEY);
+ RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, RULE_KEY);
assertThat(rule.getRemediationFunction()).isEqualTo(DebtRemediationFunction.Type.CONSTANT_ISSUE.name());
assertThat(rule.getRemediationGapMultiplier()).isNull();
assertThat(rule.getRemediationBaseEffort()).isEqualTo("10min");
@@ -313,7 +303,7 @@ public class RuleUpdaterTest {
@Test
public void reset_remediation_function() {
- RuleDto ruleDto = RuleTesting.newDto(RULE_KEY, db.getDefaultOrganization())
+ RuleDto ruleDto = RuleTesting.newDto(RULE_KEY)
.setDefRemediationFunction(DebtRemediationFunction.Type.LINEAR.name())
.setDefRemediationGapMultiplier("1d")
.setDefRemediationBaseEffort("5min")
@@ -325,13 +315,12 @@ public class RuleUpdaterTest {
dbSession.commit();
RuleUpdate update = createForPluginRule(RULE_KEY)
- .setDebtRemediationFunction(null)
- .setOrganization(db.getDefaultOrganization());
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ .setDebtRemediationFunction(null);
+ underTest.update(dbSession, update, userSessionRule);
dbSession.clearCache();
// verify debt is coming from default values
- RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, db.getDefaultOrganization(), RULE_KEY);
+ RuleDto rule = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, RULE_KEY);
assertThat(rule.getDefRemediationFunction()).isEqualTo(DebtRemediationFunction.Type.LINEAR.name());
assertThat(rule.getDefRemediationGapMultiplier()).isEqualTo("1d");
assertThat(rule.getDefRemediationBaseEffort()).isEqualTo("5min");
@@ -366,14 +355,13 @@ public class RuleUpdaterTest {
.setMarkdownDescription("New description")
.setSeverity("MAJOR")
.setStatus(RuleStatus.READY)
- .setParameters(ImmutableMap.of("regex", "b.*"))
- .setOrganization(db.getDefaultOrganization());
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ .setParameters(ImmutableMap.of("regex", "b.*"));
+ underTest.update(dbSession, update, userSessionRule);
dbSession.clearCache();
// Verify custom rule is updated
- RuleDto customRuleReloaded = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, db.getDefaultOrganization(), customRule.getKey());
+ RuleDto customRuleReloaded = db.getDbClient().ruleDao().selectOrFailByKey(dbSession, customRule.getKey());
assertThat(customRuleReloaded).isNotNull();
assertThat(customRuleReloaded.getName()).isEqualTo("New name");
assertThat(customRuleReloaded.getDescription()).isEqualTo("New description");
@@ -415,9 +403,8 @@ public class RuleUpdaterTest {
.setName("New name")
.setMarkdownDescription("New description")
.setSeverity("MAJOR")
- .setStatus(RuleStatus.READY)
- .setOrganization(db.getDefaultOrganization());
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ .setStatus(RuleStatus.READY);
+ underTest.update(dbSession, update, userSessionRule);
dbSession.clearCache();
@@ -447,7 +434,7 @@ public class RuleUpdaterTest {
db.rules().insertRuleParam(customRule, param -> param.setName("message").setType("STRING").setDescription("message"));
// Create a quality profile
- QProfileDto profileDto = QProfileTesting.newXooP1(db.getDefaultOrganization());
+ QProfileDto profileDto = QProfileTesting.newXooP1();
db.getDbClient().qualityProfileDao().insert(dbSession, profileDto);
dbSession.commit();
@@ -466,15 +453,14 @@ public class RuleUpdaterTest {
// Update custom rule parameter 'regex', add 'message' and remove 'format'
RuleUpdate update = createForCustomRule(customRule.getKey())
- .setParameters(ImmutableMap.of("regex", "b.*", "message", "a message"))
- .setOrganization(db.getDefaultOrganization());
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ .setParameters(ImmutableMap.of("regex", "b.*", "message", "a message"));
+ underTest.update(dbSession, update, userSessionRule);
// Verify custom rule parameters has been updated
List<RuleParamDto> params = db.getDbClient().ruleDao().selectRuleParamsByRuleKey(dbSession, customRule.getKey());
assertThat(params).hasSize(3);
- Map<String, RuleParamDto> paramsByKey = paramsByKey(params);
+ Map<String, RuleParamDto> paramsByKey = paramsByName(params);
assertThat(paramsByKey.get("regex")).isNotNull();
assertThat(paramsByKey.get("regex").getDefaultValue()).isEqualTo("b.*");
assertThat(paramsByKey.get("message")).isNotNull();
@@ -511,13 +497,12 @@ public class RuleUpdaterTest {
// Update custom rule
RuleUpdate update = createForCustomRule(customRule.getKey())
.setName("")
- .setMarkdownDescription("New desc")
- .setOrganization(db.getDefaultOrganization());
+ .setMarkdownDescription("New desc");
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The name is missing");
- underTest.update(dbSession, update, db.getDefaultOrganization(), userSessionRule);
+ underTest.update(dbSession, update, userSessionRule);
}
@Test
@@ -536,8 +521,8 @@ public class RuleUpdaterTest {
expectedException.expectMessage("The description is missing");
underTest.update(dbSession,
- createForCustomRule(customRule.getKey()).setName("New name").setMarkdownDescription("").setOrganization(db.getDefaultOrganization()),
- db.getDefaultOrganization(), userSessionRule);
+ createForCustomRule(customRule.getKey()).setName("New name").setMarkdownDescription(""),
+ userSessionRule);
}
@Test
@@ -573,16 +558,8 @@ public class RuleUpdaterTest {
createForPluginRule(ruleDefinition.getKey()).setSeverity(CRITICAL);
}
- private static Map<String, RuleParamDto> paramsByKey(List<RuleParamDto> params) {
- return FluentIterable.from(params).uniqueIndex(RuleParamToKey.INSTANCE);
+ private static Map<String, RuleParamDto> paramsByName(List<RuleParamDto> params) {
+ return params.stream().collect(Collectors.toMap(RuleParamDto::getName, p -> p));
}
- private enum RuleParamToKey implements Function<RuleParamDto, String> {
- INSTANCE;
-
- @Override
- public String apply(@Nonnull RuleParamDto input) {
- return input.getName();
- }
- }
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ActiveRuleCompleterTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ActiveRuleCompleterTest.java
index 04ad927f36d..609bc44bdf3 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ActiveRuleCompleterTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ActiveRuleCompleterTest.java
@@ -24,7 +24,6 @@ import org.junit.Rule;
import org.junit.Test;
import org.sonar.api.resources.Languages;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.db.rule.RuleDefinitionDto;
@@ -39,13 +38,12 @@ public class ActiveRuleCompleterTest {
@Test
public void test_completeShow() {
- OrganizationDto organization = dbTester.organizations().insert();
ActiveRuleCompleter underTest = new ActiveRuleCompleter(dbTester.getDbClient(), new Languages());
RuleDefinitionDto rule = dbTester.rules().insert();
- QProfileDto qualityProfile = dbTester.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = dbTester.qualityProfiles().insert();
ActiveRuleDto activeRule = dbTester.qualityProfiles().activateRule(qualityProfile, rule);
- List<Rules.Active> result = underTest.completeShow(dbTester.getSession(), organization, rule);
+ List<Rules.Active> result = underTest.completeShow(dbTester.getSession(), rule);
assertThat(result).extracting(Rules.Active::getQProfile).containsExactlyInAnyOrder(qualityProfile.getKee());
assertThat(result).extracting(Rules.Active::getSeverity).containsExactlyInAnyOrder(activeRule.getSeverityString());
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/AppActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/AppActionTest.java
index aaf840d03d2..0c544508c03 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/AppActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/AppActionTest.java
@@ -30,7 +30,6 @@ import org.sonar.db.DbTester;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.permission.OrganizationPermission;
import org.sonar.db.rule.RuleRepositoryDto;
-import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.language.LanguageTesting;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
@@ -52,11 +51,10 @@ public class AppActionTest {
public DbTester db = DbTester.create(System2.INSTANCE);
@Rule
public UserSessionRule userSession = UserSessionRule.standalone();
+ private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
private Languages languages = new Languages(LANG1, LANG2);
- private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
- private RuleWsSupport wsSupport = new RuleWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider);
- private AppAction underTest = new AppAction(languages, db.getDbClient(), userSession, wsSupport);
+ private AppAction underTest = new AppAction(languages, db.getDbClient(), userSession, defaultOrganizationProvider);
private WsActionTester ws = new WsActionTester(underTest);
@Test
@@ -65,11 +63,7 @@ public class AppActionTest {
assertThat(definition.isInternal()).isTrue();
assertThat(definition.key()).isEqualTo("app");
- assertThat(definition.params()).hasSize(1);
- assertThat(definition.param("organization"))
- .matches(p -> p.isInternal())
- .matches(p -> p.since().equals("6.4"))
- .matches(p -> !p.isRequired());
+ assertThat(definition.params()).isEmpty();
}
@Test
@@ -106,7 +100,8 @@ public class AppActionTest {
}
@Test
- public void canWrite_is_true_if_user_is_profile_administrator_of_default_organization() {
+ public void canWrite_is_true_if_user_is_profile_administrator() {
+ // TODO
userSession.addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, db.getDefaultOrganization());
String json = ws.newRequest().execute().getInput();
@@ -115,32 +110,8 @@ public class AppActionTest {
}
@Test
- public void canWrite_is_true_if_user_is_profile_administrator_of_specified_organization() {
- OrganizationDto organization = db.organizations().insert();
- userSession.addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
-
- String json = ws.newRequest()
- .setParam("organization", organization.getKey())
- .execute().getInput();
-
- assertJson(json).isSimilarTo("{ \"canWrite\": true }");
- }
-
- @Test
- public void canWrite_is_false_if_user_is_not_profile_administrator_of_specified_organization() {
- OrganizationDto organization1 = db.organizations().insert();
- OrganizationDto organization2 = db.organizations().insert();
- userSession.addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization1);
-
- String json = ws.newRequest()
- .setParam("organization", organization2.getKey())
- .execute().getInput();
-
- assertJson(json).isSimilarTo("{ \"canWrite\": false }");
- }
-
- @Test
- public void canWrite_is_false_if_user_is_not_profile_administrator_of_default_organization() {
+ public void canWrite_is_false_if_user_is_not_profile_administrator() {
+ // TODO
OrganizationDto organization = db.organizations().insert();
userSession.addPermission(OrganizationPermission.ADMINISTER_QUALITY_PROFILES, organization);
@@ -149,16 +120,6 @@ public class AppActionTest {
assertJson(json).isSimilarTo("{ \"canWrite\": false }");
}
- @Test
- public void throw_NotFoundException_if_organization_does_not_exist() {
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage("No organization with key 'does_not_exist'");
-
- ws.newRequest()
- .setParam("organization", "does_not_exist")
- .execute();
- }
-
private void insertRules() {
RuleRepositoryDto repo1 = new RuleRepositoryDto("xoo", "xoo", "SonarQube");
RuleRepositoryDto repo2 = new RuleRepositoryDto("squid", "ws", "SonarQube");
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/CreateActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/CreateActionTest.java
index 24fb092c90c..16a4e45c36f 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/CreateActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/CreateActionTest.java
@@ -78,8 +78,7 @@ public class CreateActionTest {
private UuidFactory uuidFactory = new SequenceUuidFactory();
private WsActionTester ws = new WsActionTester(new CreateAction(db.getDbClient(),
- new RuleCreator(system2, new RuleIndexer(es.client(), db.getDbClient()), db.getDbClient(), newFullTypeValidations(),
- TestDefaultOrganizationProvider.from(db), uuidFactory),
+ new RuleCreator(system2, new RuleIndexer(es.client(), db.getDbClient()), db.getDbClient(), newFullTypeValidations(), uuidFactory),
new RuleMapper(new Languages(), createMacroInterpreter()),
new RuleWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider)));
@@ -95,7 +94,7 @@ public class CreateActionTest {
public void create_custom_rule() {
logInAsQProfileAdministrator();
// Template rule
- RuleDto templateRule = newTemplateRule(RuleKey.of("java", "S001"), db.getDefaultOrganization()).setType(CODE_SMELL);
+ RuleDto templateRule = newTemplateRule(RuleKey.of("java", "S001")).setType(CODE_SMELL);
db.rules().insert(templateRule.getDefinition());
db.rules().insertOrUpdateMetadata(templateRule.getMetadata().setRuleUuid(templateRule.getUuid()));
db.rules().insertRuleParam(templateRule.getDefinition(), param -> param.setName("regex").setType("STRING").setDescription("Reg ex").setDefaultValue(".*"));
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/DeleteActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/DeleteActionTest.java
index 542dd291068..41b76377426 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/DeleteActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/DeleteActionTest.java
@@ -57,12 +57,11 @@ public class DeleteActionTest {
public EsTester es = EsTester.create();
@Rule
public ExpectedException thrown = ExpectedException.none();
-
+ private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(dbTester);
private DbClient dbClient = dbTester.getDbClient();
private DbSession dbSession = dbTester.getSession();
private RuleIndexer ruleIndexer = spy(new RuleIndexer(es.client(), dbClient));
private QProfileRules qProfileRules = mock(QProfileRules.class);
- private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.fromUuid("ORG1");
private RuleWsSupport ruleWsSupport = new RuleWsSupport(mock(DbClient.class), userSession, defaultOrganizationProvider);
private DeleteAction underTest = new DeleteAction(System2.INSTANCE, ruleIndexer, dbClient, qProfileRules, ruleWsSupport);
private WsActionTester tester = new WsActionTester(underTest);
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/RuleQueryFactoryTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/RuleQueryFactoryTest.java
index 3e2f7ff24cd..486035c98ed 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/RuleQueryFactoryTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/RuleQueryFactoryTest.java
@@ -22,17 +22,15 @@ package org.sonar.server.rule.ws;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+import org.sonar.api.impl.ws.SimpleGetRequest;
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
-import org.sonar.api.impl.ws.SimpleGetRequest;
import org.sonar.api.utils.System2;
import org.sonar.db.DbClient;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.QProfileDto;
import org.sonar.server.exceptions.NotFoundException;
-import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.rule.index.RuleQuery;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.TestRequest;
@@ -50,7 +48,6 @@ import static org.sonar.api.rules.RuleType.CODE_SMELL;
import static org.sonar.api.server.ws.WebService.Param.ASCENDING;
import static org.sonar.api.server.ws.WebService.Param.SORT;
import static org.sonar.api.server.ws.WebService.Param.TEXT_QUERY;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.db.qualityprofile.ActiveRuleDto.INHERITED;
import static org.sonar.db.qualityprofile.ActiveRuleDto.OVERRIDES;
import static org.sonar.server.rule.ws.RuleWsSupport.defineGenericRuleSearchParameters;
@@ -62,7 +59,6 @@ import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_INCLUDE_EXTERNAL;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_INHERITANCE;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_IS_TEMPLATE;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_LANGUAGES;
-import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_ORGANIZATION;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_QPROFILE;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_REPOSITORIES;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_RULE_KEY;
@@ -83,7 +79,7 @@ public class RuleQueryFactoryTest {
private DbClient dbClient = db.getDbClient();
- private RuleQueryFactory underTest = new RuleQueryFactory(dbClient, new RuleWsSupport(dbClient, userSession, TestDefaultOrganizationProvider.from(db)));
+ private RuleQueryFactory underTest = new RuleQueryFactory(dbClient);
private FakeAction fakeAction = new FakeAction(underTest);
@@ -116,9 +112,8 @@ public class RuleQueryFactoryTest {
@Test
public void create_rule_search_query() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- QProfileDto compareToQualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
+ QProfileDto compareToQualityProfile = db.qualityProfiles().insert();
RuleQuery result = executeRuleSearchQuery(
PARAM_RULE_KEY, "ruleKey",
@@ -131,7 +126,6 @@ public class RuleQueryFactoryTest {
PARAM_INCLUDE_EXTERNAL, "false",
PARAM_LANGUAGES, "java,js",
TEXT_QUERY, "S001",
- PARAM_ORGANIZATION, organization.getKey(),
PARAM_QPROFILE, qualityProfile.getKee(),
PARAM_COMPARE_TO_PROFILE, compareToQualityProfile.getKee(),
PARAM_REPOSITORIES, "pmd,checkstyle",
@@ -150,9 +144,8 @@ public class RuleQueryFactoryTest {
@Test
public void include_external_is_mandatory_for_rule_search_query() {
- OrganizationDto organization = db.organizations().insert();
- db.qualityProfiles().insert(organization);
- db.qualityProfiles().insert(organization);
+ db.qualityProfiles().insert();
+ db.qualityProfiles().insert();
Request request = new SimpleGetRequest();
expectedException.expect(IllegalArgumentException.class);
@@ -162,9 +155,8 @@ public class RuleQueryFactoryTest {
@Test
public void create_query() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- QProfileDto compareToQualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
+ QProfileDto compareToQualityProfile = db.qualityProfiles().insert();
RuleQuery result = execute(
PARAM_RULE_KEY, "ruleKey",
@@ -177,7 +169,6 @@ public class RuleQueryFactoryTest {
PARAM_INCLUDE_EXTERNAL, "true",
PARAM_LANGUAGES, "java,js",
TEXT_QUERY, "S001",
- PARAM_ORGANIZATION, organization.getKey(),
PARAM_QPROFILE, qualityProfile.getKee(),
PARAM_COMPARE_TO_PROFILE, compareToQualityProfile.getKee(),
PARAM_REPOSITORIES, "pmd,checkstyle",
@@ -196,8 +187,7 @@ public class RuleQueryFactoryTest {
@Test
public void use_quality_profiles_language_if_available() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
String qualityProfileKey = qualityProfile.getKee();
RuleQuery result = execute(
@@ -210,16 +200,14 @@ public class RuleQueryFactoryTest {
@Test
public void use_specified_languages_if_no_quality_profile_available() {
- RuleQuery result = execute(
- PARAM_LANGUAGES, "specifiedLanguage");
+ RuleQuery result = execute(PARAM_LANGUAGES, "specifiedLanguage");
assertThat(result.getLanguages()).containsExactly("specifiedLanguage");
}
@Test
public void create_query_add_language_from_profile() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setName("Sonar way").setLanguage("xoo").setKee("sonar-way"));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setName("Sonar way").setLanguage("xoo").setKee("sonar-way"));
RuleQuery result = execute(
PARAM_QPROFILE, profile.getKee(),
@@ -230,102 +218,15 @@ public class RuleQueryFactoryTest {
}
@Test
- public void filter_on_quality_profiles_organization_if_searching_for_actives_with_no_organization_specified() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setName("Sonar way").setLanguage("xoo").setKee("sonar-way"));
-
- RuleQuery result = execute(
- PARAM_ACTIVATION, "true",
- PARAM_QPROFILE, profile.getKee());
-
- assertThat(result.getOrganization().getUuid()).isEqualTo(organization.getUuid());
- }
-
- @Test
public void filter_on_compare_to() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto compareToProfile = db.qualityProfiles().insert(organization);
+ QProfileDto compareToProfile = db.qualityProfiles().insert();
RuleQuery result = execute(
- PARAM_ORGANIZATION, organization.getKey(),
PARAM_COMPARE_TO_PROFILE, compareToProfile.getKee());
assertThat(result.getCompareToQProfile().getKee()).isEqualTo(compareToProfile.getKee());
}
- @Test
- public void activation_is_kept_when_member_of_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setName("Sonar way").setLanguage("xoo").setKee("sonar-way"));
- userSession.logIn(db.users().insertUser()).addMembership(organization);
-
- RuleQuery result = execute(
- PARAM_ACTIVATION, "true",
- PARAM_QPROFILE, profile.getKee());
-
- assertThat(result.getActivation()).isTrue();
- }
-
- @Test
- public void activation_is_set_to_null_when_not_member_of_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setName("Sonar way").setLanguage("xoo").setKee("sonar-way"));
-
- RuleQuery result = execute(
- PARAM_ACTIVATION, "true",
- PARAM_QPROFILE, profile.getKee());
-
- assertThat(result.getActivation()).isNull();
- }
-
- @Test
- public void fail_if_organization_and_quality_profile_are_contradictory() {
- OrganizationDto organization1 = db.organizations().insert();
- OrganizationDto organization2 = db.organizations().insert();
-
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization1);
-
- String qualityProfileKey = qualityProfile.getKee();
- String organization2Key = organization2.getKey();
-
- expectedException.expect(IllegalArgumentException.class);
- expectedException.expectMessage("The specified quality profile '" + qualityProfileKey + "' is not part of the specified organization '" + organization2Key + "'");
-
- execute(PARAM_QPROFILE, qualityProfileKey,
- PARAM_ORGANIZATION, organization2Key);
- }
-
- @Test
- public void fail_if_organization_and_compare_to_quality_profile_are_contradictory() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
-
- OrganizationDto otherOrganization = db.organizations().insert();
- QProfileDto compareToQualityProfile = db.qualityProfiles().insert(otherOrganization);
-
- expectedException.expect(IllegalArgumentException.class);
- expectedException
- .expectMessage("The specified quality profile '" + compareToQualityProfile.getKee() + "' is not part of the specified organization '" + organization.getKey() + "'");
-
- execute(PARAM_QPROFILE, qualityProfile.getKee(),
- PARAM_COMPARE_TO_PROFILE, compareToQualityProfile.getKee(),
- PARAM_ORGANIZATION, organization.getKey());
- }
-
- @Test
- public void fail_when_organization_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
- String qualityProfileKey = qualityProfile.getKee();
-
- expectedException.expect(NotFoundException.class);
- expectedException.expectMessage("No organization with key 'unknown'");
-
- execute(PARAM_QPROFILE, qualityProfileKey,
- PARAM_ORGANIZATION, "unknown");
- }
-
- @Test
public void fail_when_profile_does_not_exist() {
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("The specified qualityProfile 'unknown' does not exist");
@@ -335,8 +236,7 @@ public class RuleQueryFactoryTest {
@Test
public void fail_when_compare_to_profile_does_not_exist() {
- OrganizationDto organization = db.organizations().insert();
- QProfileDto qualityProfile = db.qualityProfiles().insert(organization);
+ QProfileDto qualityProfile = db.qualityProfiles().insert();
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("The specified qualityProfile 'unknown' does not exist");
@@ -358,7 +258,6 @@ public class RuleQueryFactoryTest {
assertThat(result.getQueryText()).isEqualTo("S001");
assertThat(result.getQProfile().getKee()).isEqualTo(qualityProfile.getKee());
assertThat(result.getCompareToQProfile().getKee()).isEqualTo(compareToQualityProfile.getKee());
- assertThat(result.getOrganization().getUuid()).isEqualTo(qualityProfile.getOrganizationUuid());
assertThat(result.getRepositories()).containsOnly("pmd", "checkstyle");
assertThat(result.getRuleKey()).isNull();
assertThat(result.getSeverities()).containsOnly(MINOR, CRITICAL);
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/SearchActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/SearchActionTest.java
index 751668263af..12838c60cf6 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/SearchActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/SearchActionTest.java
@@ -81,8 +81,6 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.sonar.api.rule.Severity.BLOCKER;
-import static org.sonar.api.server.ws.WebService.Param.FIELDS;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.db.rule.RuleTesting.setSystemTags;
import static org.sonar.db.rule.RuleTesting.setTags;
import static org.sonar.server.rule.ws.RulesWsParameters.PARAM_ACTIVATION;
@@ -112,8 +110,7 @@ public class SearchActionTest {
private ActiveRuleIndexer activeRuleIndexer = new ActiveRuleIndexer(db.getDbClient(), es.client());
private Languages languages = LanguageTesting.newLanguages(JAVA, "js");
private ActiveRuleCompleter activeRuleCompleter = new ActiveRuleCompleter(db.getDbClient(), languages);
- private RuleWsSupport wsSupport = new RuleWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider);
- private RuleQueryFactory ruleQueryFactory = new RuleQueryFactory(db.getDbClient(), wsSupport);
+ private RuleQueryFactory ruleQueryFactory = new RuleQueryFactory(db.getDbClient());
private MacroInterpreter macroInterpreter = mock(MacroInterpreter.class);
private RuleMapper ruleMapper = new RuleMapper(languages, macroInterpreter);
private SearchAction underTest = new SearchAction(ruleIndex, activeRuleCompleter, ruleQueryFactory, db.getDbClient(), ruleMapper,
@@ -136,7 +133,7 @@ public class SearchActionTest {
assertThat(def.since()).isEqualTo("4.4");
assertThat(def.isInternal()).isFalse();
assertThat(def.responseExampleAsString()).isNotEmpty();
- assertThat(def.params()).hasSize(28);
+ assertThat(def.params()).hasSize(27);
WebService.Param compareToProfile = def.param("compareToProfile");
assertThat(compareToProfile.since()).isEqualTo("6.5");
@@ -171,10 +168,10 @@ public class SearchActionTest {
OrganizationDto organization = db.organizations().insert();
UserDto user1 = db.users().insertUser();
RuleDefinitionDto rule1 = db.rules().insert();
- db.rules().insertOrUpdateMetadata(rule1, user1, organization);
+ db.rules().insertOrUpdateMetadata(rule1, user1);
UserDto disableUser = db.users().insertDisabledUser();
RuleDefinitionDto rule2 = db.rules().insert();
- db.rules().insertOrUpdateMetadata(rule2, disableUser, organization);
+ db.rules().insertOrUpdateMetadata(rule2, disableUser);
indexRules();
SearchResponse result = ws.newRequest()
@@ -308,53 +305,47 @@ public class SearchActionTest {
}
@Test
- public void should_filter_on_organization_specific_tags() {
- OrganizationDto organization = db.organizations().insert();
+ public void should_filter_on_specific_tags() {
RuleDefinitionDto rule1 = db.rules().insert(r -> r.setLanguage("java"));
- RuleMetadataDto metadata1 = insertMetadata(organization, rule1, setTags("tag1", "tag2"));
+ RuleMetadataDto metadata1 = insertMetadata(rule1, setTags("tag1", "tag2"));
RuleDefinitionDto rule2 = db.rules().insert(r -> r.setLanguage("java"));
- RuleMetadataDto metadata2 = insertMetadata(organization, rule2);
+ RuleMetadataDto metadata2 = insertMetadata(rule2);
indexRules();
Consumer<TestRequest> request = r -> r
.setParam("f", "repo,name")
- .setParam("tags", metadata1.getTags().stream().collect(Collectors.joining(",")))
- .setParam("organization", organization.getKey());
+ .setParam("tags", metadata1.getTags().stream().collect(Collectors.joining(",")));
verify(request, rule1);
}
@Test
public void when_searching_for_several_tags_combine_them_with_OR() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto bothTagsRule = db.rules().insert(r -> r.setLanguage("java"));
- insertMetadata(organization, bothTagsRule, setTags("tag1", "tag2"));
+ insertMetadata(bothTagsRule, setTags("tag1", "tag2"));
RuleDefinitionDto oneTagRule = db.rules().insert(r -> r.setLanguage("java"));
- insertMetadata(organization, oneTagRule, setTags("tag1"));
+ insertMetadata(oneTagRule, setTags("tag1"));
RuleDefinitionDto otherTagRule = db.rules().insert(r -> r.setLanguage("java"));
- insertMetadata(organization, otherTagRule, setTags("tag2"));
+ insertMetadata(otherTagRule, setTags("tag2"));
RuleDefinitionDto noTagRule = db.rules().insert(r -> r.setLanguage("java"));
- insertMetadata(organization, noTagRule, setTags());
+ insertMetadata(noTagRule, setTags());
indexRules();
Consumer<TestRequest> request = r -> r
.setParam("f", "repo,name")
- .setParam("tags", "tag1,tag2")
- .setParam("organization", organization.getKey());
+ .setParam("tags", "tag1,tag2");
verify(request, bothTagsRule, oneTagRule, otherTagRule);
}
@Test
public void should_list_tags_in_tags_facet() {
- OrganizationDto organization = db.organizations().insert();
String[] tags = get101Tags();
RuleDefinitionDto rule = db.rules().insert(setSystemTags("x"));
- insertMetadata(organization, rule, setTags(tags));
+ insertMetadata(rule, setTags(tags));
indexRules();
SearchResponse result = ws.newRequest()
.setParam("f", "repo,name")
.setParam("facets", "tags")
- .setParam("organization", organization.getKey())
.executeProtobuf(SearchResponse.class);
assertThat(result.getFacets().getFacets(0).getValuesList()).extracting(v -> v.getVal(), v -> v.getCount())
.contains(tuple("tag0", 1L), tuple("tag25", 1L), tuple("tag99", 1L))
@@ -363,16 +354,14 @@ public class SearchActionTest {
@Test
public void should_list_tags_ordered_by_count_then_by_name_in_tags_facet() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule = db.rules().insert(setSystemTags("tag7", "tag5", "tag3", "tag1", "tag9"));
- insertMetadata(organization, rule, setTags("tag2", "tag4", "tag6", "tag8", "tagA"));
+ insertMetadata( rule, setTags("tag2", "tag4", "tag6", "tag8", "tagA"));
db.rules().insert(setSystemTags("tag2"));
indexRules();
SearchResponse result = ws.newRequest()
.setParam("f", "repo,name")
.setParam("facets", "tags")
- .setParam("organization", organization.getKey())
.executeProtobuf(SearchResponse.class);
assertThat(result.getFacets().getFacets(0).getValuesList()).extracting(v -> v.getVal(), v -> v.getCount())
.containsExactly(tuple("tag2", 2L), tuple("tag1", 1L), tuple("tag3", 1L), tuple("tag4", 1L), tuple("tag5", 1L), tuple("tag6", 1L), tuple("tag7", 1L), tuple("tag8", 1L),
@@ -405,14 +394,12 @@ public class SearchActionTest {
@Test
public void should_return_organization_specific_tags() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("java"));
- RuleMetadataDto metadata = insertMetadata(organization, rule, setTags("tag1", "tag2"));
+ RuleMetadataDto metadata = insertMetadata(rule, setTags("tag1", "tag2"));
indexRules();
SearchResponse result = ws.newRequest()
.setParam("f", "tags")
- .setParam("organization", organization.getKey())
.executeProtobuf(SearchResponse.class);
assertThat(result.getRulesList()).extracting(Rule::getKey).containsExactly(rule.getKey().toString());
assertThat(result.getRulesList())
@@ -421,28 +408,6 @@ public class SearchActionTest {
}
@Test
- public void should_not_return_tags_of_foreign_organization() {
- OrganizationDto organizationWithSpecificTags = db.organizations().insert();
- OrganizationDto myOrganization = db.organizations().insert();
- RuleDefinitionDto rule = db.rules().insert(setSystemTags("system1", "system2"));
- insertMetadata(organizationWithSpecificTags, rule, setTags("tag1", "tag2"));
- indexRules();
-
- SearchResponse result = ws.newRequest()
- .setParam("facets", "tags")
- .setParam("f", "tags")
- .setParam("organization", myOrganization.getKey())
- .executeProtobuf(SearchResponse.class);
-
- assertThat(result.getRulesList()).extracting(Rule::getKey).containsExactly(rule.getKey().toString());
- assertThat(result.getFacets().getFacets(0).getValuesList())
- .extracting(v -> tuple(v.getVal(), v.getCount()))
- .containsExactly(
- tuple("system1", 1L),
- tuple("system2", 1L));
- }
-
- @Test
public void should_return_specified_fields() {
RuleDefinitionDto rule = db.rules().insert(r1 -> r1.setLanguage("java"));
indexRules();
@@ -489,7 +454,7 @@ public class SearchActionTest {
.setDefRemediationGapMultiplier("1h")
.setDefRemediationBaseEffort("15min"));
- RuleMetadataDto metadata = insertMetadata(db.getDefaultOrganization(), rule,
+ RuleMetadataDto metadata = insertMetadata(rule,
r -> r.setRemediationFunction(DebtRemediationFunction.Type.LINEAR_OFFSET.name())
.setRemediationGapMultiplier("2h")
.setRemediationBaseEffort("25min"));
@@ -523,7 +488,7 @@ public class SearchActionTest {
.setDefRemediationGapMultiplier("1h")
.setDefRemediationBaseEffort("15min"));
- RuleMetadataDto metadata = insertMetadata(db.getDefaultOrganization(), rule,
+ RuleMetadataDto metadata = insertMetadata(rule,
r -> r.setRemediationFunction(DebtRemediationFunction.Type.CONSTANT_ISSUE.name())
.setRemediationGapMultiplier(null)
.setRemediationBaseEffort("5min"));
@@ -557,7 +522,7 @@ public class SearchActionTest {
.setDefRemediationGapMultiplier("1h")
.setDefRemediationBaseEffort("15min"));
- RuleMetadataDto metadata = insertMetadata(db.getDefaultOrganization(), rule,
+ RuleMetadataDto metadata = insertMetadata(rule,
r -> r.setRemediationFunction(DebtRemediationFunction.Type.LINEAR.name())
.setRemediationGapMultiplier("1h")
.setRemediationBaseEffort(null));
@@ -642,7 +607,7 @@ public class SearchActionTest {
@Test
public void search_all_active_rules() {
OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage("java"));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage("java"));
RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("java"));
RuleActivation activation = RuleActivation.create(rule.getUuid(), BLOCKER, null);
qProfileRules.activateAndCommit(db.getSession(), profile, singleton(activation));
@@ -666,8 +631,8 @@ public class SearchActionTest {
@Test
public void search_profile_active_rules() {
OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage("java"));
- QProfileDto waterproofProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage("java"));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage("java"));
+ QProfileDto waterproofProfile = db.qualityProfiles().insert(p -> p.setLanguage("java"));
RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("java"));
RuleParamDto ruleParam1 = db.rules().insertRuleParam(rule, p -> p.setDefaultValue("some value")
.setType("STRING")
@@ -725,7 +690,7 @@ public class SearchActionTest {
@Test
public void search_for_active_rules_when_parameter_value_is_null() {
OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage("java"));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage("java"));
RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("java"));
@@ -775,8 +740,7 @@ public class SearchActionTest {
public void facet_filtering_when_searching_for_inactive_rules() {
OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, q -> q
- .setLanguage("language1"));
+ QProfileDto profile = db.qualityProfiles().insert(q -> q.setLanguage("language1"));
// on same language, not activated => match
RuleDefinitionDto rule1 = db.rules().insert(r -> r
@@ -894,8 +858,8 @@ public class SearchActionTest {
@Test
public void compare_to_another_profile() {
OrganizationDto organization = db.organizations().insert();
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage(JAVA));
- QProfileDto anotherProfile = db.qualityProfiles().insert(organization, p -> p.setLanguage(JAVA));
+ QProfileDto profile = db.qualityProfiles().insert(p -> p.setLanguage(JAVA));
+ QProfileDto anotherProfile = db.qualityProfiles().insert(p -> p.setLanguage(JAVA));
RuleDefinitionDto commonRule = db.rules().insertRule(r -> r.setLanguage(JAVA)).getDefinition();
RuleDefinitionDto profileRule1 = db.rules().insertRule(r -> r.setLanguage(JAVA)).getDefinition();
RuleDefinitionDto profileRule2 = db.rules().insertRule(r -> r.setLanguage(JAVA)).getDefinition();
@@ -924,95 +888,6 @@ public class SearchActionTest {
.containsExactlyInAnyOrder(anotherProfileRule1.getKey().toString(), anotherProfileRule2.getKey().toString());
}
- @Test
- public void active_rules_are_returned_when_member_of_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage("java"));
- RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("java"));
- RuleActivation activation = RuleActivation.create(rule.getUuid(), BLOCKER, null);
- qProfileRules.activateAndCommit(db.getSession(), profile, singleton(activation));
- userSession.logIn(db.users().insertUser()).addMembership(organization);
-
- indexRules();
-
- SearchResponse result = ws.newRequest()
- .setParam(FIELDS, "actives")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .executeProtobuf(SearchResponse.class);
-
- assertThat(result.getRulesCount()).isEqualTo(1);
- assertThat(result.getActives().getActivesMap()).isNotEmpty();
- }
-
- @Test
- public void active_rules_are_not_returned_when_not_member_of_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage("java"));
- RuleDefinitionDto rule = db.rules().insert(r -> r.setLanguage("java"));
- RuleActivation activation = RuleActivation.create(rule.getUuid(), BLOCKER, null);
- qProfileRules.activateAndCommit(db.getSession(), profile, singleton(activation));
-
- indexRules();
-
- SearchResponse result = ws.newRequest()
- .setParam(FIELDS, "actives")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .executeProtobuf(SearchResponse.class);
-
- assertThat(result.getRulesCount()).isEqualTo(1);
- assertThat(result.getActives().getActivesMap()).isEmpty();
- }
-
- @Test
- public void search_for_active_rules_when_member_of_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage("java"));
- // Rule1 is activated on profile
- RuleDefinitionDto rule1 = db.rules().insert(r -> r.setLanguage("java"));
- RuleActivation activation = RuleActivation.create(rule1.getUuid(), BLOCKER, null);
- qProfileRules.activateAndCommit(db.getSession(), profile, singleton(activation));
- // Rule2 is not activated
- RuleDefinitionDto rule2 = db.rules().insert(r -> r.setLanguage("java"));
- userSession.logIn(db.users().insertUser()).addMembership(organization);
-
- indexRules();
-
- SearchResponse result = ws.newRequest()
- .setParam(FIELDS, "actives")
- .setParam(PARAM_QPROFILE, profile.getKee())
- .setParam(PARAM_ACTIVATION, "true")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .executeProtobuf(SearchResponse.class);
-
- assertThat(result.getRulesList()).extracting(Rule::getKey)
- .containsExactlyInAnyOrder(rule1.getKey().toString());
- }
-
- @Test
- public void search_for_active_rules_is_ignored_when_not_member_of_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- QProfileDto profile = db.qualityProfiles().insert(organization, p -> p.setLanguage("java"));
- // Rule1 is activated on profile
- RuleDefinitionDto rule1 = db.rules().insert(r -> r.setLanguage("java"));
- RuleActivation activation = RuleActivation.create(rule1.getUuid(), BLOCKER, null);
- qProfileRules.activateAndCommit(db.getSession(), profile, singleton(activation));
- // Rule2 is not activated
- RuleDefinitionDto rule2 = db.rules().insert(r -> r.setLanguage("java"));
-
- indexRules();
-
- SearchResponse result = ws.newRequest()
- .setParam(FIELDS, "actives")
- .setParam(PARAM_QPROFILE, profile.getKee())
- .setParam(PARAM_ACTIVATION, "true")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .executeProtobuf(SearchResponse.class);
-
- // the 2 rules are returned as filter on profile is ignored
- assertThat(result.getRulesList()).extracting(Rule::getKey)
- .containsExactlyInAnyOrder(rule1.getKey().toString(), rule2.getKey().toString());
- }
-
@SafeVarargs
private final <T> void checkField(RuleDefinitionDto rule, String fieldName, Extractor<Rule, T> responseExtractor, T... expected) {
SearchResponse result = ws.newRequest()
@@ -1023,9 +898,9 @@ public class SearchActionTest {
}
@SafeVarargs
- private final RuleMetadataDto insertMetadata(OrganizationDto organization, RuleDefinitionDto rule, Consumer<RuleMetadataDto>... populaters) {
- RuleMetadataDto metadata = db.rules().insertOrUpdateMetadata(rule, organization, populaters);
- ruleIndexer.commitAndIndex(db.getSession(), rule.getUuid(), organization);
+ private final RuleMetadataDto insertMetadata(RuleDefinitionDto rule, Consumer<RuleMetadataDto>... populaters) {
+ RuleMetadataDto metadata = db.rules().insertOrUpdateMetadata(rule, populaters);
+ ruleIndexer.commitAndIndex(db.getSession(), rule.getUuid());
return metadata;
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ShowActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ShowActionTest.java
index 454001cb508..6d3aefd7910 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ShowActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ShowActionTest.java
@@ -29,7 +29,6 @@ import org.sonar.api.rule.Severity;
import org.sonar.api.rules.RuleType;
import org.sonar.api.server.ws.WebService;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.qualityprofile.ActiveRuleDto;
import org.sonar.db.qualityprofile.ActiveRuleParamDto;
import org.sonar.db.qualityprofile.QProfileDto;
@@ -38,7 +37,7 @@ import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleMetadataDto;
import org.sonar.db.rule.RuleParamDto;
import org.sonar.db.user.UserDto;
-import org.sonar.server.exceptions.NotFoundException;
+import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.text.MacroInterpreter;
@@ -54,7 +53,6 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import static org.sonar.db.organization.OrganizationDto.Subscription.PAID;
import static org.sonar.db.rule.RuleDto.Format.MARKDOWN;
import static org.sonar.db.rule.RuleTesting.newCustomRule;
import static org.sonar.db.rule.RuleTesting.newTemplateRule;
@@ -62,7 +60,6 @@ import static org.sonar.db.rule.RuleTesting.setTags;
import static org.sonar.server.language.LanguageTesting.newLanguage;
import static org.sonar.server.rule.ws.ShowAction.PARAM_ACTIVES;
import static org.sonar.server.rule.ws.ShowAction.PARAM_KEY;
-import static org.sonar.server.rule.ws.ShowAction.PARAM_ORGANIZATION;
import static org.sonarqube.ws.Common.RuleType.UNKNOWN;
import static org.sonarqube.ws.Common.RuleType.VULNERABILITY;
@@ -76,6 +73,7 @@ public class ShowActionTest {
public DbTester db = DbTester.create();
@org.junit.Rule
public ExpectedException thrown = ExpectedException.none();
+ private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
private MacroInterpreter macroInterpreter = mock(MacroInterpreter.class);
private Languages languages = new Languages(newLanguage("xoo", "Xoo"));
@@ -83,7 +81,7 @@ public class ShowActionTest {
private WsActionTester ws = new WsActionTester(
new ShowAction(db.getDbClient(), new RuleMapper(languages, macroInterpreter),
new ActiveRuleCompleter(db.getDbClient(), languages),
- new RuleWsSupport(db.getDbClient(), userSession, TestDefaultOrganizationProvider.from(db))));
+ new RuleWsSupport(db.getDbClient(), userSession, defaultOrganizationProvider)));
@Before
public void before() {
@@ -125,9 +123,9 @@ public class ShowActionTest {
}
@Test
- public void show_rule_tags_in_default_organization() {
+ public void show_rule_tags() {
RuleDefinitionDto rule = db.rules().insert();
- RuleMetadataDto metadata = db.rules().insertOrUpdateMetadata(rule, db.getDefaultOrganization(), setTags("tag1", "tag2"), m -> m.setNoteData(null).setNoteUserUuid(null));
+ RuleMetadataDto metadata = db.rules().insertOrUpdateMetadata(rule, setTags("tag1", "tag2"), m -> m.setNoteData(null).setNoteUserUuid(null));
ShowResponse result = ws.newRequest()
.setParam(PARAM_KEY, rule.getKey().toString())
@@ -138,30 +136,13 @@ public class ShowActionTest {
}
@Test
- public void show_rule_tags_in_specific_organization() {
- RuleDefinitionDto rule = db.rules().insert();
- OrganizationDto organization = db.organizations().insert();
- RuleMetadataDto metadata = db.rules().insertOrUpdateMetadata(rule, organization, setTags("tag1", "tag2"), m -> m.setNoteData(null).setNoteUserUuid(null));
-
- ShowResponse result = ws.newRequest()
- .setParam(PARAM_KEY, rule.getKey().toString())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .executeProtobuf(ShowResponse.class);
-
- assertThat(result.getRule().getTags().getTagsList())
- .containsExactly(metadata.getTags().toArray(new String[0]));
- }
-
- @Test
public void show_rule_with_note_login() {
RuleDefinitionDto rule = db.rules().insert();
UserDto user = db.users().insertUser();
- OrganizationDto organization = db.organizations().insert();
- db.rules().insertOrUpdateMetadata(rule, user, organization);
+ db.rules().insertOrUpdateMetadata(rule, user);
ShowResponse result = ws.newRequest()
.setParam(PARAM_KEY, rule.getKey().toString())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.executeProtobuf(ShowResponse.class);
assertThat(result.getRule().getNoteLogin()).isEqualTo(user.getLogin());
@@ -196,7 +177,7 @@ public class ShowActionTest {
.setDefRemediationFunction(null)
.setDefRemediationGapMultiplier(null)
.setDefRemediationBaseEffort(null));
- db.rules().insertOrUpdateMetadata(rule, db.getDefaultOrganization(),
+ db.rules().insertOrUpdateMetadata(rule,
m -> m.setNoteData(null).setNoteUserUuid(null),
m -> m
.setRemediationFunction("LINEAR_OFFSET")
@@ -223,7 +204,7 @@ public class ShowActionTest {
.setDefRemediationFunction("LINEAR_OFFSET")
.setDefRemediationGapMultiplier("5d")
.setDefRemediationBaseEffort("10h"));
- db.rules().insertOrUpdateMetadata(rule, db.getDefaultOrganization(), m -> m.setNoteData(null).setNoteUserUuid(null),
+ db.rules().insertOrUpdateMetadata(rule, m -> m.setNoteData(null).setNoteUserUuid(null),
m -> m
.setRemediationFunction("CONSTANT_ISSUE")
.setRemediationGapMultiplier(null)
@@ -250,7 +231,7 @@ public class ShowActionTest {
.setDefRemediationFunction(null)
.setDefRemediationGapMultiplier(null)
.setDefRemediationBaseEffort(null));
- db.rules().insertOrUpdateMetadata(rule, db.getDefaultOrganization(), m -> m.setNoteData(null).setNoteUserUuid(null),
+ db.rules().insertOrUpdateMetadata(rule, m -> m.setNoteData(null).setNoteUserUuid(null),
m -> m
.setRemediationFunction(null)
.setRemediationGapMultiplier(null)
@@ -277,7 +258,7 @@ public class ShowActionTest {
.setDefRemediationGapMultiplier("5d")
.setDefRemediationBaseEffort("10h")
.setGapDescription("gap desc"));
- db.rules().insertOrUpdateMetadata(rule, db.getDefaultOrganization(), m -> m.setNoteData(null).setNoteUserUuid(null),
+ db.rules().insertOrUpdateMetadata(rule, m -> m.setNoteData(null).setNoteUserUuid(null),
m -> m
.setRemediationFunction("CONSTANT_ISSUE")
.setRemediationGapMultiplier(null)
@@ -335,11 +316,10 @@ public class ShowActionTest {
@Test
public void show_adhoc_rule() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto externalRule = db.rules().insert(r -> r
.setIsExternal(true)
.setIsAdHoc(true));
- RuleMetadataDto metadata = db.rules().insertOrUpdateMetadata(externalRule, organization, m -> m
+ RuleMetadataDto metadata = db.rules().insertOrUpdateMetadata(externalRule, m -> m
.setAdHocName("adhoc name")
.setAdHocDescription("<div>desc</div>")
.setAdHocSeverity(Severity.BLOCKER)
@@ -350,7 +330,6 @@ public class ShowActionTest {
ShowResponse result = ws.newRequest()
.setParam(PARAM_KEY, externalRule.getKey().toString())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.executeProtobuf(ShowResponse.class);
Rule resultRule = result.getRule();
@@ -361,7 +340,6 @@ public class ShowActionTest {
@Test
public void ignore_predefined_info_on_adhoc_rule() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto externalRule = db.rules().insert(r -> r
.setIsExternal(true)
.setIsAdHoc(true)
@@ -369,7 +347,7 @@ public class ShowActionTest {
.setDescription("<div>predefined desc</div>")
.setSeverity(Severity.BLOCKER)
.setType(RuleType.VULNERABILITY));
- RuleMetadataDto metadata = db.rules().insertOrUpdateMetadata(externalRule, organization, m -> m
+ RuleMetadataDto metadata = db.rules().insertOrUpdateMetadata(externalRule, m -> m
.setAdHocName("adhoc name")
.setAdHocDescription("<div>adhoc desc</div>")
.setAdHocSeverity(Severity.MAJOR)
@@ -380,7 +358,6 @@ public class ShowActionTest {
ShowResponse result = ws.newRequest()
.setParam(PARAM_KEY, externalRule.getKey().toString())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.executeProtobuf(ShowResponse.class);
Rule resultRule = result.getRule();
@@ -391,7 +368,6 @@ public class ShowActionTest {
@Test
public void adhoc_info_are_empty_when_no_metadata() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto externalRule = db.rules().insert(r -> r
.setIsExternal(true)
.setIsAdHoc(true)
@@ -403,7 +379,6 @@ public class ShowActionTest {
ShowResponse result = ws.newRequest()
.setParam(PARAM_KEY, externalRule.getKey().toString())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.executeProtobuf(ShowResponse.class);
Rule resultRule = result.getRule();
@@ -414,11 +389,10 @@ public class ShowActionTest {
@Test
public void show_rule_with_activation() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule = db.rules().insert();
RuleParamDto ruleParam = db.rules().insertRuleParam(rule, p -> p.setType("STRING").setDescription("Reg *exp*").setDefaultValue(".*"));
- RuleMetadataDto ruleMetadata = db.rules().insertOrUpdateMetadata(rule, organization, m -> m.setNoteData(null).setNoteUserUuid(null));
- QProfileDto qProfile = db.qualityProfiles().insert(organization);
+ RuleMetadataDto ruleMetadata = db.rules().insertOrUpdateMetadata(rule, m -> m.setNoteData(null).setNoteUserUuid(null));
+ QProfileDto qProfile = db.qualityProfiles().insert();
ActiveRuleDto activeRule = db.qualityProfiles().activateRule(qProfile, rule);
db.getDbClient().activeRuleDao().insertParam(db.getSession(), activeRule, new ActiveRuleParamDto()
.setRulesParameterUuid(ruleParam.getUuid())
@@ -429,7 +403,6 @@ public class ShowActionTest {
ShowResponse result = ws.newRequest()
.setParam(PARAM_KEY, rule.getKey().toString())
.setParam(PARAM_ACTIVES, "true")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.executeProtobuf(ShowResponse.class);
List<Rules.Active> actives = result.getActivesList();
@@ -443,67 +416,20 @@ public class ShowActionTest {
@Test
public void show_rule_without_activation() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule = db.rules().insert();
- RuleMetadataDto ruleMetadata = db.rules().insertOrUpdateMetadata(rule, organization, m -> m.setNoteData(null).setNoteUserUuid(null));
- QProfileDto qProfile = db.qualityProfiles().insert(organization);
+ RuleMetadataDto ruleMetadata = db.rules().insertOrUpdateMetadata(rule, m -> m.setNoteData(null).setNoteUserUuid(null));
+ QProfileDto qProfile = db.qualityProfiles().insert();
ActiveRuleDto activeRule = db.qualityProfiles().activateRule(qProfile, rule);
ShowResponse result = ws.newRequest()
.setParam(PARAM_KEY, rule.getKey().toString())
.setParam(PARAM_ACTIVES, "false")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .executeProtobuf(ShowResponse.class);
-
- assertThat(result.getActivesList()).isEmpty();
- }
-
- @Test
- public void active_rules_are_returned_when_member_of_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- RuleDefinitionDto rule = db.rules().insert();
- QProfileDto qProfile = db.qualityProfiles().insert(organization);
- ActiveRuleDto activeRule = db.qualityProfiles().activateRule(qProfile, rule);
- userSession.logIn(db.users().insertUser()).addMembership(organization);
-
- ShowResponse result = ws.newRequest()
- .setParam(PARAM_KEY, rule.getKey().toString())
- .setParam(PARAM_ACTIVES, "true")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .executeProtobuf(ShowResponse.class);
-
- assertThat(result.getActivesList()).isNotEmpty();
- }
-
- @Test
- public void active_rules_are_not_returned_when_not_member_of_paid_organization() {
- OrganizationDto organization = db.organizations().insert(o -> o.setSubscription(PAID));
- RuleDefinitionDto rule = db.rules().insert();
- QProfileDto qProfile = db.qualityProfiles().insert(organization);
- ActiveRuleDto activeRule = db.qualityProfiles().activateRule(qProfile, rule);
-
- ShowResponse result = ws.newRequest()
- .setParam(PARAM_KEY, rule.getKey().toString())
- .setParam(PARAM_ACTIVES, "true")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.executeProtobuf(ShowResponse.class);
assertThat(result.getActivesList()).isEmpty();
}
@Test
- public void throw_NotFoundException_if_organization_cannot_be_found() {
- RuleDefinitionDto rule = db.rules().insert();
-
- thrown.expect(NotFoundException.class);
-
- ws.newRequest()
- .setParam("key", rule.getKey().toString())
- .setParam("organization", "foo")
- .execute();
- }
-
- @Test
public void test_definition() {
WebService.Action def = ws.getDef();
@@ -515,8 +441,7 @@ public class ShowActionTest {
.extracting(WebService.Param::key, WebService.Param::isRequired)
.containsExactlyInAnyOrder(
tuple("key", true),
- tuple("actives", false),
- tuple("organization", false));
+ tuple("actives", false));
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/TagsActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/TagsActionTest.java
index e4204570e4d..295f7eabab5 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/TagsActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/TagsActionTest.java
@@ -19,7 +19,6 @@
*/
package org.sonar.server.rule.ws;
-import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.sonar.api.server.ws.WebService;
@@ -30,7 +29,6 @@ import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.server.es.EsClient;
import org.sonar.server.es.EsTester;
-import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.rule.index.RuleIndex;
import org.sonar.server.rule.index.RuleIndexer;
import org.sonar.server.tester.UserSessionRule;
@@ -55,15 +53,10 @@ public class TagsActionTest {
private RuleIndex ruleIndex = new RuleIndex(esClient, System2.INSTANCE);
private RuleIndexer ruleIndexer = new RuleIndexer(esClient, dbClient);
- private WsActionTester ws = new WsActionTester(new org.sonar.server.rule.ws.TagsAction(ruleIndex, dbClient, TestDefaultOrganizationProvider.from(db)));
+ private WsActionTester ws = new WsActionTester(new org.sonar.server.rule.ws.TagsAction(ruleIndex));
private OrganizationDto organization;
- @Before
- public void before() {
- organization = db.organizations().insert();
- }
-
@Test
public void definition() {
WebService.Action action = ws.getDef();
@@ -71,7 +64,7 @@ public class TagsActionTest {
assertThat(action.responseExampleAsString()).isNotEmpty();
assertThat(action.isPost()).isFalse();
assertThat(action.isInternal()).isFalse();
- assertThat(action.params()).hasSize(3);
+ assertThat(action.params()).hasSize(2);
WebService.Param query = action.param("q");
assertThat(query).isNotNull();
@@ -85,14 +78,6 @@ public class TagsActionTest {
assertThat(pageSize.defaultValue()).isEqualTo("10");
assertThat(pageSize.description()).isNotEmpty();
assertThat(pageSize.exampleValue()).isNotEmpty();
-
- WebService.Param organization = action.param("organization");
- assertThat(organization).isNotNull();
- assertThat(organization.isRequired()).isFalse();
- assertThat(organization.isInternal()).isTrue();
- assertThat(organization.description()).isNotEmpty();
- assertThat(organization.exampleValue()).isNotEmpty();
- assertThat(organization.since()).isEqualTo("6.4");
}
@Test
@@ -108,10 +93,10 @@ public class TagsActionTest {
public void tag() {
RuleDefinitionDto r = db.rules().insert(setSystemTags());
ruleIndexer.commitAndIndex(db.getSession(), r.getUuid());
- db.rules().insertOrUpdateMetadata(r, organization, setTags("tag"));
- ruleIndexer.commitAndIndex(db.getSession(), r.getUuid(), organization);
+ db.rules().insertOrUpdateMetadata(r, setTags("tag"));
+ ruleIndexer.commitAndIndex(db.getSession(), r.getUuid());
- String result = ws.newRequest().setParam("organization", organization.getKey()).execute().getInput();
+ String result = ws.newRequest().execute().getInput();
assertJson(result).isSimilarTo("{\"tags\":[\"tag\"]}");
}
}
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/UpdateActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/UpdateActionTest.java
index 0419187f977..6720427e5a3 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/UpdateActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/UpdateActionTest.java
@@ -29,14 +29,12 @@ import org.sonar.api.rule.Severity;
import org.sonar.api.utils.System2;
import org.sonar.db.DbClient;
import org.sonar.db.DbTester;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleMetadataDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.es.EsClient;
import org.sonar.server.es.EsTester;
import org.sonar.server.exceptions.ForbiddenException;
-import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
@@ -61,7 +59,6 @@ import static org.sonar.db.rule.RuleTesting.setSystemTags;
import static org.sonar.db.rule.RuleTesting.setTags;
import static org.sonar.server.rule.ws.UpdateAction.PARAM_KEY;
import static org.sonar.server.rule.ws.UpdateAction.PARAM_MARKDOWN_NOTE;
-import static org.sonar.server.rule.ws.UpdateAction.PARAM_ORGANIZATION;
import static org.sonar.server.rule.ws.UpdateAction.PARAM_REMEDIATION_FN_BASE_EFFORT;
import static org.sonar.server.rule.ws.UpdateAction.PARAM_REMEDIATION_FN_GAP_MULTIPLIER;
import static org.sonar.server.rule.ws.UpdateAction.PARAM_REMEDIATION_FN_TYPE;
@@ -83,11 +80,10 @@ public class UpdateActionTest {
@Rule
public UserSessionRule userSession = UserSessionRule.standalone();
-
+ private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
private DbClient dbClient = db.getDbClient();
private EsClient esClient = es.client();
- private DefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db);
private Languages languages = new Languages();
private RuleMapper mapper = new RuleMapper(languages, createMacroInterpreter());
private RuleIndexer ruleIndexer = new RuleIndexer(esClient, dbClient);
@@ -155,11 +151,11 @@ public class UpdateActionTest {
}
@Test
- public void update_tags_for_default_organization() {
+ public void update_tags() {
logInAsQProfileAdministrator();
RuleDefinitionDto rule = db.rules().insert(setSystemTags("stag1", "stag2"));
- db.rules().insertOrUpdateMetadata(rule, db.getDefaultOrganization(), setTags("tag1", "tag2"), m -> m.setNoteData(null).setNoteUserUuid(null));
+ db.rules().insertOrUpdateMetadata(rule, setTags("tag1", "tag2"), m -> m.setNoteData(null).setNoteUserUuid(null));
Rules.UpdateResponse result = ws.newRequest().setMethod("POST")
.setParam(PARAM_KEY, rule.getKey().toString())
@@ -175,37 +171,8 @@ public class UpdateActionTest {
}
@Test
- public void update_tags_for_specific_organization() {
- OrganizationDto organization = db.organizations().insert();
- logInAsQProfileAdministrator(organization.getUuid());
-
- RuleDefinitionDto rule = db.rules().insert(setSystemTags("stag1", "stag2"));
- db.rules().insertOrUpdateMetadata(rule, organization, setTags("tagAlt1", "tagAlt2"), m -> m.setNoteData(null).setNoteUserUuid(null));
-
- Rules.UpdateResponse result = ws.newRequest().setMethod("POST")
- .setParam(PARAM_KEY, rule.getKey().toString())
- .setParam(PARAM_TAGS, "tag2,tag3")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
- .executeProtobuf(Rules.UpdateResponse.class);
-
- Rules.Rule updatedRule = result.getRule();
- assertThat(updatedRule).isNotNull();
-
- // check response
- assertThat(updatedRule.getKey()).isEqualTo(rule.getKey().toString());
- assertThat(updatedRule.getSysTags().getSysTagsList()).containsExactly(rule.getSystemTags().toArray(new String[0]));
- assertThat(updatedRule.getTags().getTagsList()).containsExactly("tag2", "tag3");
-
- // check database
- RuleMetadataDto metadataOfSpecificOrg = db.getDbClient().ruleDao().selectMetadataByKey(db.getSession(), rule.getKey(), organization.getUuid())
- .orElseThrow(() -> new IllegalStateException("Cannot load metadata"));
- assertThat(metadataOfSpecificOrg.getTags()).containsExactly("tag2", "tag3");
- }
-
- @Test
public void update_rule_remediation_function() {
- OrganizationDto organization = db.organizations().insert();
- logInAsQProfileAdministrator(organization.getUuid());
+ logInAsQProfileAdministrator();
RuleDefinitionDto rule = db.rules().insert(
r -> r.setDefRemediationFunction(LINEAR.toString()),
@@ -218,7 +185,6 @@ public class UpdateActionTest {
Rules.UpdateResponse result = ws.newRequest().setMethod("POST")
.setParam("key", rule.getKey().toString())
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.setParam(PARAM_REMEDIATION_FN_TYPE, newOffset)
.setParam(PARAM_REMEDIATION_FN_GAP_MULTIPLIER, newMultiplier)
.setParam(PARAM_REMEDIATION_FN_BASE_EFFORT, newEffort)
@@ -238,7 +204,7 @@ public class UpdateActionTest {
assertThat(updatedRule.getRemFnBaseEffort()).isEqualTo(newEffort);
// check database
- RuleMetadataDto metadataOfSpecificOrg = db.getDbClient().ruleDao().selectMetadataByKey(db.getSession(), rule.getKey(), organization.getUuid())
+ RuleMetadataDto metadataOfSpecificOrg = db.getDbClient().ruleDao().selectMetadataByKey(db.getSession(), rule.getKey())
.orElseThrow(() -> new IllegalStateException("Cannot load metadata"));
assertThat(metadataOfSpecificOrg.getRemediationFunction()).isEqualTo(newOffset);
assertThat(metadataOfSpecificOrg.getRemediationGapMultiplier()).isEqualTo(newMultiplier);
@@ -247,17 +213,15 @@ public class UpdateActionTest {
@Test
public void update_note() {
- OrganizationDto organization = db.organizations().insert();
RuleDefinitionDto rule = db.rules().insert();
UserDto userHavingUpdatingNote = db.users().insertUser();
- db.rules().insertOrUpdateMetadata(rule, userHavingUpdatingNote, organization, m -> m.setNoteData("old data"));
+ db.rules().insertOrUpdateMetadata(rule, userHavingUpdatingNote, m -> m.setNoteData("old data"));
UserDto userAuthenticated = db.users().insertUser();
- userSession.logIn(userAuthenticated).addPermission(ADMINISTER_QUALITY_PROFILES, organization);
+ userSession.logIn(userAuthenticated).addPermission(ADMINISTER_QUALITY_PROFILES, db.getDefaultOrganization());
Rules.UpdateResponse result = ws.newRequest().setMethod("POST")
.setParam(PARAM_KEY, rule.getKey().toString())
.setParam(PARAM_MARKDOWN_NOTE, "new data")
- .setParam(PARAM_ORGANIZATION, organization.getKey())
.executeProtobuf(Rules.UpdateResponse.class);
Rules.Rule updatedRule = result.getRule();
@@ -267,7 +231,7 @@ public class UpdateActionTest {
assertThat(updatedRule.getNoteLogin()).isEqualTo(userAuthenticated.getLogin());
// check database
- RuleMetadataDto metadataOfSpecificOrg = db.getDbClient().ruleDao().selectMetadataByKey(db.getSession(), rule.getKey(), organization.getUuid()).get();
+ RuleMetadataDto metadataOfSpecificOrg = db.getDbClient().ruleDao().selectMetadataByKey(db.getSession(), rule.getKey()).get();
assertThat(metadataOfSpecificOrg.getNoteData()).isEqualTo("new data");
assertThat(metadataOfSpecificOrg.getNoteUserUuid()).isEqualTo(userAuthenticated.getUuid());
}
@@ -330,27 +294,10 @@ public class UpdateActionTest {
ws.newRequest().setMethod("POST").execute();
}
- @Test
- public void throw_NotFoundException_if_organization_cannot_be_found() {
- logInAsQProfileAdministrator();
- RuleDefinitionDto rule = db.rules().insert();
-
- expectedException.expect(NotFoundException.class);
-
- ws.newRequest().setMethod("POST")
- .setParam("key", rule.getKey().toString())
- .setParam("organization", "foo")
- .execute();
- }
-
private void logInAsQProfileAdministrator() {
- logInAsQProfileAdministrator(db.getDefaultOrganization().getUuid());
- }
-
- private void logInAsQProfileAdministrator(String orgUuid) {
userSession
.logIn()
- .addPermission(ADMINISTER_QUALITY_PROFILES, orgUuid);
+ .addPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganizationProvider.get().getUuid());
}
private static MacroInterpreter createMacroInterpreter() {
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java
index e5e7b76d873..6fc63c1a432 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java
@@ -256,8 +256,8 @@ public class ComponentActionTest {
public void return_quality_profiles_and_supports_deleted_ones() {
OrganizationDto organization = db.organizations().insert(o -> o.setKey("my-org"));
ComponentDto project = insertProject(organization);
- QProfileDto qp1 = db.qualityProfiles().insert(organization, t -> t.setKee("qp1").setName("Sonar Way Java").setLanguage("java"));
- QProfileDto qp2 = db.qualityProfiles().insert(organization, t -> t.setKee("qp2").setName("Sonar Way Xoo").setLanguage("xoo"));
+ QProfileDto qp1 = db.qualityProfiles().insert(t -> t.setKee("qp1").setName("Sonar Way Java").setLanguage("java"));
+ QProfileDto qp2 = db.qualityProfiles().insert(t -> t.setKee("qp2").setName("Sonar Way Xoo").setLanguage("xoo"));
addQualityProfiles(project,
new QualityProfile(qp1.getKee(), qp1.getName(), qp1.getLanguage(), new Date()),
new QualityProfile(qp2.getKee(), qp2.getName(), qp2.getLanguage(), new Date()));
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/DeactivateActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/DeactivateActionTest.java
index 60b84eee1cc..cc4e57e3352 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/DeactivateActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/DeactivateActionTest.java
@@ -192,7 +192,7 @@ public class DeactivateActionTest {
public void deactivate_user_deletes_his_qprofiles_permissions() {
logInAsSystemAdministrator();
UserDto user = db.users().insertUser();
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile = db.qualityProfiles().insert();
db.qualityProfiles().addUserPermission(profile, user);
deactivate(user.getLogin());
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java
index 338877bd6f0..57433b3b578 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/usergroups/ws/DeleteActionTest.java
@@ -204,7 +204,7 @@ public class DeleteActionTest {
addAdminToDefaultOrganization();
insertDefaultGroupOnDefaultOrganization();
GroupDto group = db.users().insertGroup();
- QProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
+ QProfileDto profile = db.qualityProfiles().insert();
db.qualityProfiles().addGroupPermission(profile, group);
loginAsAdminOnDefaultOrganization();
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofile/QualityProfileWsParameters.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofile/QualityProfileWsParameters.java
index f05b091f2e2..4fb221aeb74 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofile/QualityProfileWsParameters.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofile/QualityProfileWsParameters.java
@@ -51,7 +51,6 @@ public class QualityProfileWsParameters {
public static final String PARAM_DEFAULTS = "defaults";
public static final String PARAM_FROM_KEY = "fromKey";
public static final String PARAM_GROUP = "group";
- public static final String PARAM_ORGANIZATION = "organization";
public static final String PARAM_LANGUAGE = "language";
public static final String PARAM_LOGIN = "login";
public static final String PARAM_NAME = "name";
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ActivateRulesRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ActivateRulesRequest.java
index 796a7d3e9d4..9a8d5a29b2d 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ActivateRulesRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ActivateRulesRequest.java
@@ -40,7 +40,6 @@ public class ActivateRulesRequest {
private List<String> inheritance;
private String isTemplate;
private List<String> languages;
- private String organization;
private List<String> owaspTop10;
private String q;
private String qprofile;
@@ -199,19 +198,6 @@ public class ActivateRulesRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public ActivateRulesRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* Possible values:
* <ul>
* <li>"a1"</li>
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddGroupRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddGroupRequest.java
index 1ede6644899..3d5ef361083 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddGroupRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddGroupRequest.java
@@ -32,7 +32,6 @@ public class AddGroupRequest {
private String group;
private String language;
- private String organization;
private String qualityProfile;
/**
@@ -61,19 +60,6 @@ public class AddGroupRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public AddGroupRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* This is a mandatory parameter.
* Example value: "Recommended quality profile"
*/
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddProjectRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddProjectRequest.java
index e6e3407e662..87d2d7e038e 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddProjectRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddProjectRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class AddProjectRequest {
private String language;
- private String organization;
private String project;
private String qualityProfile;
@@ -48,19 +47,6 @@ public class AddProjectRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public AddProjectRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* This is a mandatory parameter.
* Example value: "my_project"
*/
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddUserRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddUserRequest.java
index 3b01345e563..a9b521a5645 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddUserRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/AddUserRequest.java
@@ -32,7 +32,6 @@ public class AddUserRequest {
private String language;
private String login;
- private String organization;
private String qualityProfile;
/**
@@ -61,19 +60,6 @@ public class AddUserRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public AddUserRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* This is a mandatory parameter.
* Example value: "Recommended quality profile"
*/
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/BackupRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/BackupRequest.java
index 4cd3227770b..8ce280421db 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/BackupRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/BackupRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class BackupRequest {
private String language;
- private String organization;
private String qualityProfile;
/**
@@ -47,19 +46,6 @@ public class BackupRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public BackupRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* This is a mandatory parameter.
* Example value: "Sonar way"
*/
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ChangeParentRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ChangeParentRequest.java
index 360b4df967a..16322ccdced 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ChangeParentRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ChangeParentRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class ChangeParentRequest {
private String language;
- private String organization;
private String parentQualityProfile;
private String qualityProfile;
@@ -48,19 +47,6 @@ public class ChangeParentRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public ChangeParentRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* Example value: "Sonar way"
*/
public ChangeParentRequest setParentQualityProfile(String parentQualityProfile) {
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ChangelogRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ChangelogRequest.java
index 9f1b1f0b9e5..0c67bf5949d 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ChangelogRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ChangelogRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class ChangelogRequest {
private String language;
- private String organization;
private String p;
private String ps;
private String qualityProfile;
@@ -51,19 +50,6 @@ public class ChangelogRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public ChangelogRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* Example value: "42"
*/
public ChangelogRequest setP(String p) {
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/CreateRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/CreateRequest.java
index 0558d4bd0e7..8bb4041b961 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/CreateRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/CreateRequest.java
@@ -32,7 +32,6 @@ public class CreateRequest {
private String language;
private String name;
- private String organization;
/**
* This is a mandatory parameter.
@@ -60,16 +59,4 @@ public class CreateRequest {
return name;
}
- /**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public CreateRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
}
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/DeactivateRulesRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/DeactivateRulesRequest.java
index 9debd5f2e63..d828e6849c6 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/DeactivateRulesRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/DeactivateRulesRequest.java
@@ -40,7 +40,6 @@ public class DeactivateRulesRequest {
private List<String> inheritance;
private String isTemplate;
private List<String> languages;
- private String organization;
private List<String> owaspTop10;
private String q;
private String qprofile;
@@ -198,19 +197,6 @@ public class DeactivateRulesRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public DeactivateRulesRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* Possible values:
* <ul>
* <li>"a1"</li>
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/DeleteRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/DeleteRequest.java
index 7a2d0c22c14..3e9638007ea 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/DeleteRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/DeleteRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class DeleteRequest {
private String language;
- private String organization;
private String qualityProfile;
/**
@@ -47,19 +46,6 @@ public class DeleteRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public DeleteRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* This is a mandatory parameter.
* Example value: "Sonar way"
*/
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ExportRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ExportRequest.java
index 7ccc3d79b89..99479d04b36 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ExportRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/ExportRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class ExportRequest {
private String language;
- private String organization;
private String qualityProfile;
/**
@@ -48,19 +47,6 @@ public class ExportRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public ExportRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* Example value: "My Sonar way"
*/
public ExportRequest setQualityProfile(String qualityProfile) {
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/InheritanceRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/InheritanceRequest.java
index 9b29d2e7bca..f89ad67b47e 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/InheritanceRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/InheritanceRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class InheritanceRequest {
private String language;
- private String organization;
private String qualityProfile;
/**
@@ -47,19 +46,6 @@ public class InheritanceRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public InheritanceRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* This is a mandatory parameter.
* Example value: "Sonar way"
*/
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/QualityprofilesService.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/QualityprofilesService.java
index eaad9b8e20d..2dd6158e0ef 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/QualityprofilesService.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/QualityprofilesService.java
@@ -82,7 +82,6 @@ public class QualityprofilesService extends BaseService {
.setParam("inheritance", request.getInheritance() == null ? null : request.getInheritance().stream().collect(Collectors.joining(",")))
.setParam("is_template", request.getIsTemplate())
.setParam("languages", request.getLanguages() == null ? null : request.getLanguages().stream().collect(Collectors.joining(",")))
- .setParam("organization", request.getOrganization())
.setParam("owaspTop10", request.getOwaspTop10() == null ? null : request.getOwaspTop10().stream().collect(Collectors.joining(",")))
.setParam("q", request.getQ())
.setParam("qprofile", request.getQprofile())
@@ -114,7 +113,6 @@ public class QualityprofilesService extends BaseService {
new PostRequest(path("add_group"))
.setParam("group", request.getGroup())
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("qualityProfile", request.getQualityProfile())
.setMediaType(MediaTypes.JSON)
).content();
@@ -131,7 +129,6 @@ public class QualityprofilesService extends BaseService {
call(
new PostRequest(path("add_project"))
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("project", request.getProject())
.setParam("qualityProfile", request.getQualityProfile())
.setMediaType(MediaTypes.JSON)
@@ -150,7 +147,6 @@ public class QualityprofilesService extends BaseService {
new PostRequest(path("add_user"))
.setParam("language", request.getLanguage())
.setParam("login", request.getLogin())
- .setParam("organization", request.getOrganization())
.setParam("qualityProfile", request.getQualityProfile())
.setMediaType(MediaTypes.JSON)
).content();
@@ -167,7 +163,6 @@ public class QualityprofilesService extends BaseService {
return call(
new GetRequest(path("backup"))
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("qualityProfile", request.getQualityProfile())
.setMediaType(MediaTypes.JSON)
).content();
@@ -184,7 +179,6 @@ public class QualityprofilesService extends BaseService {
call(
new PostRequest(path("change_parent"))
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("parentQualityProfile", request.getParentQualityProfile())
.setParam("qualityProfile", request.getQualityProfile())
.setMediaType(MediaTypes.JSON)
@@ -202,7 +196,6 @@ public class QualityprofilesService extends BaseService {
return call(
new GetRequest(path("changelog"))
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("p", request.getP())
.setParam("ps", request.getPs())
.setParam("qualityProfile", request.getQualityProfile())
@@ -254,8 +247,7 @@ public class QualityprofilesService extends BaseService {
return call(
new PostRequest(path("create"))
.setParam("language", request.getLanguage())
- .setParam("name", request.getName())
- .setParam("organization", request.getOrganization()),
+ .setParam("name", request.getName()),
CreateWsResponse.parser());
}
@@ -294,7 +286,6 @@ public class QualityprofilesService extends BaseService {
.setParam("inheritance", request.getInheritance() == null ? null : request.getInheritance().stream().collect(Collectors.joining(",")))
.setParam("is_template", request.getIsTemplate())
.setParam("languages", request.getLanguages() == null ? null : request.getLanguages().stream().collect(Collectors.joining(",")))
- .setParam("organization", request.getOrganization())
.setParam("owaspTop10", request.getOwaspTop10() == null ? null : request.getOwaspTop10().stream().collect(Collectors.joining(",")))
.setParam("q", request.getQ())
.setParam("qprofile", request.getQprofile())
@@ -324,7 +315,6 @@ public class QualityprofilesService extends BaseService {
call(
new PostRequest(path("delete"))
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("qualityProfile", request.getQualityProfile())
.setMediaType(MediaTypes.JSON)
).content();
@@ -341,7 +331,6 @@ public class QualityprofilesService extends BaseService {
return call(
new GetRequest(path("export"))
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("qualityProfile", request.getQualityProfile())
.setMediaType(MediaTypes.JSON)
).content();
@@ -386,7 +375,6 @@ public class QualityprofilesService extends BaseService {
return call(
new GetRequest(path("inheritance"))
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("qualityProfile", request.getQualityProfile()),
Qualityprofiles.InheritanceWsResponse.parser());
}
@@ -422,7 +410,6 @@ public class QualityprofilesService extends BaseService {
new PostRequest(path("remove_group"))
.setParam("group", request.getGroup())
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("qualityProfile", request.getQualityProfile())
.setMediaType(MediaTypes.JSON)
).content();
@@ -439,7 +426,6 @@ public class QualityprofilesService extends BaseService {
call(
new PostRequest(path("remove_project"))
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("project", request.getProject())
.setParam("qualityProfile", request.getQualityProfile())
.setMediaType(MediaTypes.JSON)
@@ -458,7 +444,6 @@ public class QualityprofilesService extends BaseService {
new PostRequest(path("remove_user"))
.setParam("language", request.getLanguage())
.setParam("login", request.getLogin())
- .setParam("organization", request.getOrganization())
.setParam("qualityProfile", request.getQualityProfile())
.setMediaType(MediaTypes.JSON)
).content();
@@ -491,7 +476,6 @@ public class QualityprofilesService extends BaseService {
call(
new PostRequest(path("restore"))
.setParam("backup", request.getBackup())
- .setParam("organization", request.getOrganization())
.setMediaType(MediaTypes.JSON)
).content();
}
@@ -508,7 +492,6 @@ public class QualityprofilesService extends BaseService {
new GetRequest(path("search"))
.setParam("defaults", request.getDefaults())
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("project", request.getProject())
.setParam("qualityProfile", request.getQualityProfile()),
SearchWsResponse.parser());
@@ -525,7 +508,6 @@ public class QualityprofilesService extends BaseService {
return call(
new GetRequest(path("search_groups"))
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("p", request.getP())
.setParam("ps", request.getPs())
.setParam("q", request.getQ())
@@ -545,7 +527,6 @@ public class QualityprofilesService extends BaseService {
return call(
new GetRequest(path("search_users"))
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("p", request.getP())
.setParam("ps", request.getPs())
.setParam("q", request.getQ())
@@ -565,7 +546,6 @@ public class QualityprofilesService extends BaseService {
call(
new PostRequest(path("set_default"))
.setParam("language", request.getLanguage())
- .setParam("organization", request.getOrganization())
.setParam("qualityProfile", request.getQualityProfile())
.setMediaType(MediaTypes.JSON)
).content();
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveGroupRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveGroupRequest.java
index c7e2cbb46c2..d0dce1024f9 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveGroupRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveGroupRequest.java
@@ -32,7 +32,6 @@ public class RemoveGroupRequest {
private String group;
private String language;
- private String organization;
private String qualityProfile;
/**
@@ -61,19 +60,6 @@ public class RemoveGroupRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public RemoveGroupRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* This is a mandatory parameter.
* Example value: "Recommended quality profile"
*/
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveProjectRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveProjectRequest.java
index 1d3edb8f6e1..acb329a1329 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveProjectRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveProjectRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class RemoveProjectRequest {
private String language;
- private String organization;
private String project;
private String qualityProfile;
@@ -48,19 +47,6 @@ public class RemoveProjectRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public RemoveProjectRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* This is a mandatory parameter.
* Example value: "my_project"
*/
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveUserRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveUserRequest.java
index 3318a036403..41a06d3718e 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveUserRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RemoveUserRequest.java
@@ -32,7 +32,6 @@ public class RemoveUserRequest {
private String language;
private String login;
- private String organization;
private String qualityProfile;
/**
@@ -61,19 +60,6 @@ public class RemoveUserRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public RemoveUserRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* This is a mandatory parameter.
* Example value: "Recommended quality profile"
*/
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RestoreRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RestoreRequest.java
index d4d7f0317c5..84af739c0e6 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RestoreRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/RestoreRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class RestoreRequest {
private String backup;
- private String organization;
/**
* This is a mandatory parameter.
@@ -45,16 +44,4 @@ public class RestoreRequest {
return backup;
}
- /**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public RestoreRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
}
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchGroupsRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchGroupsRequest.java
index c0282ee67ce..146c9717c14 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchGroupsRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchGroupsRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class SearchGroupsRequest {
private String language;
- private String organization;
private String p;
private String ps;
private String q;
@@ -51,19 +50,6 @@ public class SearchGroupsRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public SearchGroupsRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* Example value: "42"
*/
public SearchGroupsRequest setP(String p) {
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchRequest.java
index 99472222efe..708b831cf06 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchRequest.java
@@ -32,7 +32,6 @@ public class SearchRequest {
private String defaults;
private String language;
- private String organization;
private String project;
private String qualityProfile;
@@ -66,19 +65,6 @@ public class SearchRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public SearchRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* Example value: "my_project"
*/
public SearchRequest setProject(String project) {
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchUsersRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchUsersRequest.java
index 97f5c1e0ccf..3af4b71f966 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchUsersRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SearchUsersRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class SearchUsersRequest {
private String language;
- private String organization;
private String p;
private String ps;
private String q;
@@ -51,19 +50,6 @@ public class SearchUsersRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public SearchUsersRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* Example value: "42"
*/
public SearchUsersRequest setP(String p) {
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SetDefaultRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SetDefaultRequest.java
index 1cf06b01d80..c519a836ed8 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SetDefaultRequest.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/qualityprofiles/SetDefaultRequest.java
@@ -31,7 +31,6 @@ import javax.annotation.Generated;
public class SetDefaultRequest {
private String language;
- private String organization;
private String qualityProfile;
/**
@@ -47,19 +46,6 @@ public class SetDefaultRequest {
}
/**
- * This is part of the internal API.
- * Example value: "my-org"
- */
- public SetDefaultRequest setOrganization(String organization) {
- this.organization = organization;
- return this;
- }
-
- public String getOrganization() {
- return organization;
- }
-
- /**
* This is a mandatory parameter.
* Example value: "Sonar way"
*/
diff --git a/sonar-ws/src/main/protobuf/ws-qualityprofiles.proto b/sonar-ws/src/main/protobuf/ws-qualityprofiles.proto
index ddb6ebbe8ff..4d9cd5d44ac 100644
--- a/sonar-ws/src/main/protobuf/ws-qualityprofiles.proto
+++ b/sonar-ws/src/main/protobuf/ws-qualityprofiles.proto
@@ -46,7 +46,6 @@ message SearchWsResponse {
optional string rulesUpdatedAt = 11;
optional string lastUsed = 13;
optional string userUpdatedAt = 14;
- optional string organization = 15;
optional bool isBuiltIn = 16;
optional Actions actions = 17;
@@ -77,7 +76,6 @@ message CreateWsResponse {
optional bool isDefault = 6;
optional Infos infos = 7;
optional Warnings warnings = 8;
- optional string organization = 9;
message Infos {
repeated string infos = 1;
@@ -134,7 +132,6 @@ message ShowResponse {
optional string rulesUpdatedAt = 10;
optional string lastUsed = 11;
optional string userUpdatedAt = 12;
- optional string organization = 13;
optional bool isBuiltIn = 14;
}