@Override
public void handle(Request request, Response response) throws Exception {
- ruleWsSupport.checkQProfileAdminPermission();
+ ruleWsSupport.checkQProfileAdminPermissionOnDefaultOrganization();
String customKey = request.mandatoryParam(PARAM_CUSTOM_KEY);
try (DbSession dbSession = dbClient.openSession(false)) {
try {
@Override
public void handle(Request request, Response response) {
- ruleWsSupport.checkQProfileAdminPermission();
+ ruleWsSupport.checkQProfileAdminPermissionOnDefaultOrganization();
RuleKey key = RuleKey.parse(request.mandatoryParam(PARAM_KEY));
delete(key);
}
this.defaultOrganizationProvider = defaultOrganizationProvider;
}
- public void checkQProfileAdminPermission() {
+ public void checkQProfileAdminPermissionOnDefaultOrganization() {
userSession
.checkLoggedIn()
.checkPermission(ADMINISTER_QUALITY_PROFILES, defaultOrganizationProvider.get().getUuid());
import static java.util.Collections.singletonList;
import static java.util.Optional.ofNullable;
import static org.apache.commons.lang.StringUtils.defaultIfEmpty;
+import static org.sonar.db.permission.OrganizationPermission.ADMINISTER_QUALITY_PROFILES;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
public class UpdateAction implements RulesWsAction {
private final RuleUpdater ruleUpdater;
private final RuleMapper mapper;
private final UserSession userSession;
- private final RuleWsSupport ruleWsSupport;
private final DefaultOrganizationProvider defaultOrganizationProvider;
public UpdateAction(DbClient dbClient, RuleUpdater ruleUpdater, RuleMapper mapper, UserSession userSession,
- RuleWsSupport ruleWsSupport, DefaultOrganizationProvider defaultOrganizationProvider) {
+ DefaultOrganizationProvider defaultOrganizationProvider) {
this.dbClient = dbClient;
this.ruleUpdater = ruleUpdater;
this.mapper = mapper;
this.userSession = userSession;
- this.ruleWsSupport = ruleWsSupport;
this.defaultOrganizationProvider = defaultOrganizationProvider;
}
@Override
public void handle(Request request, Response response) throws Exception {
- ruleWsSupport.checkQProfileAdminPermission();
-
+ userSession.checkLoggedIn();
try (DbSession dbSession = dbClient.openSession(false)) {
OrganizationDto organization = getOrganization(request, dbSession);
+ 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);
private RuleIndexer ruleIndexer = new RuleIndexer(esClient, dbClient);
private RuleUpdater ruleUpdater = new RuleUpdater(dbClient, ruleIndexer, System2.INSTANCE);
private RuleWsSupport ruleWsSupport = new RuleWsSupport(dbClient, userSession, defaultOrganizationProvider);
- private WsAction underTest = new UpdateAction(dbClient, ruleUpdater, mapper, userSession, ruleWsSupport, defaultOrganizationProvider);
+ private WsAction underTest = new UpdateAction(dbClient, ruleUpdater, mapper, userSession, defaultOrganizationProvider);
private WsActionTester ws = new WsActionTester(underTest);
@Test
@Test
public void update_tags_for_specific_organization() throws IOException {
- logInAsQProfileAdministrator();
-
OrganizationDto organization = db.organizations().insert();
+ logInAsQProfileAdministrator(organization.getUuid());
RuleDefinitionDto rule = db.rules().insert(setSystemTags("stag1", "stag2"));
db.rules().insertOrUpdateMetadata(rule, organization, setTags("tagAlt1", "tagAlt2"));
@Test
public void update_rule_remediation_function() throws IOException {
- logInAsQProfileAdministrator();
-
OrganizationDto organization = db.organizations().insert();
+ logInAsQProfileAdministrator(organization.getUuid());
RuleDefinitionDto rule = db.rules().insert(
r -> r.setDefRemediationFunction(LINEAR.toString()),
}
private void logInAsQProfileAdministrator() {
+ logInAsQProfileAdministrator(db.getDefaultOrganization().getUuid());
+ }
+
+ private void logInAsQProfileAdministrator(String orgUuid) {
userSession
.logIn()
- .addPermission(ADMINISTER_QUALITY_PROFILES, db.getDefaultOrganization().getUuid());
+ .addPermission(ADMINISTER_QUALITY_PROFILES, orgUuid);
}
private static MacroInterpreter createMacroInterpreter() {