import org.sonar.server.qualityprofile.QProfileFactory;
import org.sonar.server.qualityprofile.QProfileLookup;
import org.sonar.server.qualityprofile.QProfileResetImpl;
-import org.sonar.server.qualityprofile.QProfileService;
import org.sonar.server.qualityprofile.RuleActivator;
import org.sonar.server.qualityprofile.RuleActivatorContextFactory;
import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
OldRestoreAction.class,
RuleActivator.class,
QProfileExporters.class,
- QProfileService.class,
RuleActivatorContextFactory.class,
QProfileFactory.class,
QProfileCopier.class,
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2017 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.qualityprofile;
-
-import javax.annotation.Nullable;
-import org.sonar.api.server.ServerSide;
-import org.sonar.server.organization.DefaultOrganizationProvider;
-import org.sonar.server.rule.index.RuleQuery;
-import org.sonar.server.user.UserSession;
-
-import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
-
-@ServerSide
-public class QProfileService {
-
- private final RuleActivator ruleActivator;
- private final UserSession userSession;
- private final DefaultOrganizationProvider defaultOrganizationProvider;
-
- public QProfileService(RuleActivator ruleActivator, UserSession userSession, DefaultOrganizationProvider defaultOrganizationProvider) {
- this.ruleActivator = ruleActivator;
- this.userSession = userSession;
- this.defaultOrganizationProvider = defaultOrganizationProvider;
- }
-
- public BulkChangeResult bulkActivate(RuleQuery ruleQuery, String profile, @Nullable String severity) {
- verifyAdminPermission();
- return ruleActivator.bulkActivate(ruleQuery, profile, severity);
- }
-
- public BulkChangeResult bulkDeactivate(RuleQuery ruleQuery, String profile) {
- verifyAdminPermission();
- return ruleActivator.bulkDeactivate(ruleQuery, profile);
- }
-
- private void verifyAdminPermission() {
- // FIXME check for the permission of the appropriate organization, not the default one
- userSession
- .checkLoggedIn()
- .checkPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganizationProvider.get().getUuid());
- }
-}
return value;
}
- BulkChangeResult bulkActivate(RuleQuery ruleQuery, String profileKey, @Nullable String severity) {
+ public BulkChangeResult bulkActivate(RuleQuery ruleQuery, String profileKey, @Nullable String severity) {
DbSession dbSession = db.openSession(false);
BulkChangeResult result = new BulkChangeResult();
try {
return result;
}
- BulkChangeResult bulkDeactivate(RuleQuery ruleQuery, String profile) {
+ public BulkChangeResult bulkDeactivate(RuleQuery ruleQuery, String profile) {
DbSession dbSession = db.openSession(false);
BulkChangeResult result = new BulkChangeResult();
try {
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
+import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.qualityprofile.BulkChangeResult;
-import org.sonar.server.qualityprofile.QProfileService;
+import org.sonar.server.qualityprofile.RuleActivator;
import org.sonar.server.rule.ws.RuleQueryFactory;
+import org.sonar.server.user.UserSession;
+import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonar.server.rule.ws.SearchAction.defineRuleSearchParameters;
@ServerSide
public static final String BULK_ACTIVATE_ACTION = "activate_rules";
- private final QProfileService profileService;
private final RuleQueryFactory ruleQueryFactory;
+ private final UserSession userSession;
+ private final DefaultOrganizationProvider defaultOrganizationProvider;
+ private final RuleActivator ruleActivator;
- public ActivateRulesAction(QProfileService profileService, RuleQueryFactory ruleQueryFactory) {
- this.profileService = profileService;
+ public ActivateRulesAction(RuleQueryFactory ruleQueryFactory, UserSession userSession, DefaultOrganizationProvider defaultOrganizationProvider,
+ RuleActivator ruleActivator) {
this.ruleQueryFactory = ruleQueryFactory;
+ this.userSession = userSession;
+ this.defaultOrganizationProvider = defaultOrganizationProvider;
+ this.ruleActivator = ruleActivator;
}
public void define(WebService.NewController controller) {
@Override
public void handle(Request request, Response response) throws Exception {
- BulkChangeResult result = profileService.bulkActivate(
- ruleQueryFactory.createRuleQuery(request),
- request.mandatoryParam(PROFILE_KEY),
- request.param(SEVERITY));
+ verifyAdminPermission();
+ BulkChangeResult result = ruleActivator.bulkActivate(ruleQueryFactory.createRuleQuery(request), request.mandatoryParam(PROFILE_KEY), request.param(SEVERITY));
BulkChangeWsResponse.writeResponse(result, response);
}
+
+ private void verifyAdminPermission() {
+ // FIXME check for the permission of the appropriate organization, not the default one
+ userSession
+ .checkLoggedIn()
+ .checkPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganizationProvider.get().getUuid());
+ }
}
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
+import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.qualityprofile.BulkChangeResult;
-import org.sonar.server.qualityprofile.QProfileService;
+import org.sonar.server.qualityprofile.RuleActivator;
import org.sonar.server.rule.ws.RuleQueryFactory;
+import org.sonar.server.user.UserSession;
+import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonar.server.rule.ws.SearchAction.defineRuleSearchParameters;
@ServerSide
public static final String BULK_DEACTIVATE_ACTION = "deactivate_rules";
- private final QProfileService profileService;
private final RuleQueryFactory ruleQueryFactory;
+ private final UserSession userSession;
+ private final DefaultOrganizationProvider defaultOrganizationProvider;
+ private final RuleActivator ruleActivator;
- public DeactivateRulesAction(QProfileService profileService, RuleQueryFactory ruleQueryFactory) {
- this.profileService = profileService;
+ public DeactivateRulesAction(RuleQueryFactory ruleQueryFactory, UserSession userSession, DefaultOrganizationProvider defaultOrganizationProvider,
+ RuleActivator ruleActivator) {
this.ruleQueryFactory = ruleQueryFactory;
+ this.userSession = userSession;
+ this.defaultOrganizationProvider = defaultOrganizationProvider;
+ this.ruleActivator = ruleActivator;
}
public void define(WebService.NewController controller) {
@Override
public void handle(Request request, Response response) throws Exception {
- BulkChangeResult result = profileService.bulkDeactivate(
- ruleQueryFactory.createRuleQuery(request),
- request.mandatoryParam(PROFILE_KEY));
+ verifyAdminPermission();
+ BulkChangeResult result = ruleActivator.bulkDeactivate(ruleQueryFactory.createRuleQuery(request), request.mandatoryParam(PROFILE_KEY));
BulkChangeWsResponse.writeResponse(result, response);
}
+
+ private void verifyAdminPermission() {
+ // FIXME check for the permission of the appropriate organization, not the default one
+ userSession
+ .checkLoggedIn()
+ .checkPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganizationProvider.get().getUuid());
+ }
}
import org.sonar.db.DbTester;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.qualityprofile.RuleActivator;
-import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsActionTester;
private DbClient dbClient = dbTester.getDbClient();
private RuleActivator ruleActivator = mock(RuleActivator.class);
- private QProfileWsSupport wsSupport = new QProfileWsSupport(dbClient, userSession, TestDefaultOrganizationProvider.from(dbTester));
- private ActiveRuleIndexer activeRuleIndexer = mock(ActiveRuleIndexer.class);
- private ActivateRulesAction underTest = new ActivateRulesAction(null, null);
+ private ActivateRulesAction underTest = new ActivateRulesAction(null, null, TestDefaultOrganizationProvider.from(dbTester), ruleActivator);
private WsActionTester wsActionTester = new WsActionTester(underTest);
@Test
import org.sonar.db.DbTester;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.qualityprofile.RuleActivator;
-import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsActionTester;
private DbClient dbClient = dbTester.getDbClient();
private RuleActivator ruleActivator = mock(RuleActivator.class);
- private QProfileWsSupport wsSupport = new QProfileWsSupport(dbClient, userSession, TestDefaultOrganizationProvider.from(dbTester));
- private ActiveRuleIndexer activeRuleIndexer = mock(ActiveRuleIndexer.class);
- private DeactivateRulesAction underTest = new DeactivateRulesAction(null, null);
+ private DeactivateRulesAction underTest = new DeactivateRulesAction(null, null, TestDefaultOrganizationProvider.from(dbTester), ruleActivator);
private WsActionTester wsActionTester = new WsActionTester(underTest);
@Test
import org.sonar.server.organization.TestDefaultOrganizationProvider;
import org.sonar.server.qualityprofile.QProfileLookup;
import org.sonar.server.qualityprofile.QProfileName;
-import org.sonar.server.qualityprofile.QProfileService;
import org.sonar.server.qualityprofile.QProfileTesting;
import org.sonar.server.qualityprofile.RuleActivation;
import org.sonar.server.qualityprofile.RuleActivator;
private InheritanceAction underTest;
private WsActionTester wsActionTester;
private RuleActivator ruleActivator;
- private QProfileService service;
private OrganizationDto organization;
@Before
new TypeValidations(new ArrayList<>()),
activeRuleIndexer,
userSession);
- service = new QProfileService(
- ruleActivator,
- userSession,
- defaultOrganizationProvider);
organization = dbTester.organizations().insert();
}
import org.sonar.server.language.LanguageTesting;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.organization.TestDefaultOrganizationProvider;
-import org.sonar.server.qualityprofile.QProfileService;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsTester;
@Before
public void setUp() {
- QProfileService profileService = mock(QProfileService.class);
DbClient dbClient = mock(DbClient.class);
Languages languages = LanguageTesting.newLanguages(xoo1Key, xoo2Key);