import org.junit.rules.ExpectedException;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.core.util.Protobuf;
import org.sonar.db.DbTester;
import org.sonar.db.ce.CeActivityDto;
@Test
public void search_tasks_by_component_key() {
ComponentDto project = componentDbTester.insertProject();
- setUserWithBrowsePermission(project);
+ logInWithBrowsePermission(project);
insertActivity("T1", project.uuid(), CeActivityDto.Status.SUCCESS);
TestResponse wsResponse = ws.newRequest()
}
@Test
- public void fail_when_insufficient_permissions() {
+ public void throw_ForbiddenException_if_user_cant_access_project() {
ComponentDto project = componentDbTester.insertProject();
- userSession.setGlobalPermissions(GlobalPermissions.SCAN_EXECUTION);
+ userSession.logIn();
expectedException.expect(ForbiddenException.class);
+ expectedException.expectMessage("Insufficient privileges");
ws.newRequest()
.setParam(PARAM_COMPONENT_ID, project.uuid())
@Test
public void fail_when_no_component_parameter() {
expectedException.expect(IllegalArgumentException.class);
- setUserWithBrowsePermission(componentDbTester.insertProject());
+ logInWithBrowsePermission(componentDbTester.insertProject());
ws.newRequest().execute();
}
- private void setUserWithBrowsePermission(ComponentDto project) {
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ private void logInWithBrowsePermission(ComponentDto project) {
+ userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
}
private CeQueueDto insertQueue(String taskUuid, String componentUuid, CeQueueDto.Status status) {
import static java.util.Collections.singleton;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.sonar.core.permission.GlobalPermissions.PROVISIONING;
import static org.sonar.core.permission.GlobalPermissions.SCAN_EXECUTION;
-import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
import static org.sonarqube.ws.MediaTypes.PROTOBUF;
public class TaskActionTest {
@Test
public void task_is_in_queue() throws Exception {
- userSession.logIn("john").setGlobalPermissions(SYSTEM_ADMIN);
+ logInAsRoot();
CeQueueDto queueDto = new CeQueueDto();
queueDto.setTaskType(CeTaskTypes.REPORT);
@Test
public void task_is_archived() throws Exception {
- userSession.logIn("john").setGlobalPermissions(SYSTEM_ADMIN);
+ logInAsRoot();
CeActivityDto activityDto = createActivityDto(SOME_TASK_UUID);
persist(activityDto);
@Test
public void return_stacktrace_of_failed_activity_with_stacktrace_when_additionalField_is_set() {
- userSession.logIn("john").setGlobalPermissions(SYSTEM_ADMIN);
+ logInAsRoot();
CeActivityDto activityDto = createActivityDto(SOME_TASK_UUID)
.setErrorMessage("error msg")
@Test
public void do_not_return_stacktrace_of_failed_activity_with_stacktrace_when_additionalField_is_not_set() {
- userSession.logIn("john").setGlobalPermissions(SYSTEM_ADMIN);
+ logInAsRoot();
CeActivityDto activityDto = createActivityDto(SOME_TASK_UUID)
.setErrorMessage("error msg")
@Test
public void return_scannerContext_of_activity_with_scannerContext_when_additionalField_is_set() {
- userSession.logIn("john").setGlobalPermissions(SYSTEM_ADMIN);
+ logInAsRoot();
String scannerContext = "this is some scanner context, yeah!";
persist(createActivityDto(SOME_TASK_UUID));
@Test
public void do_not_return_scannerContext_of_activity_with_scannerContext_when_additionalField_is_not_set() {
- userSession.logIn("john").setGlobalPermissions(SYSTEM_ADMIN);
+ logInAsRoot();
String scannerContext = "this is some scanner context, yeah!";
persist(createActivityDto(SOME_TASK_UUID));
@Test
public void do_not_return_stacktrace_of_failed_activity_without_stacktrace() {
- userSession.logIn("john").setGlobalPermissions(SYSTEM_ADMIN);
+ logInAsRoot();
CeActivityDto activityDto = createActivityDto(SOME_TASK_UUID)
.setErrorMessage("error msg");
@Test
public void task_not_found() throws Exception {
- userSession.logIn("john").setGlobalPermissions(SYSTEM_ADMIN);
+ logInAsRoot();
expectedException.expect(NotFoundException.class);
ws.newRequest()
@Test
public void not_fail_on_queue_task_not_linked_on_project_with_system_admin_permissions() {
- userSession.logIn("john").setGlobalPermissions(SYSTEM_ADMIN);
+ logInAsRoot();
CeQueueDto queueDto = new CeQueueDto();
queueDto.setTaskType("fake");
@Test
public void not_fail_on_queue_task_not_linked_on_project_with_global_scan_permissions() {
- userSession.logIn("john").setGlobalPermissions(SCAN_EXECUTION);
+ logInAsRoot();
CeQueueDto queueDto = new CeQueueDto();
queueDto.setTaskType("fake");
@Test
public void fail_on_queue_task_not_linked_on_project_if_not_admin_nor_scan_permission() {
- userSession.logIn("john").setGlobalPermissions(PROVISIONING);
-
CeQueueDto queueDto = new CeQueueDto();
queueDto.setTaskType("fake");
queueDto.setUuid(SOME_TASK_UUID);
persist(queueDto);
expectedException.expect(ForbiddenException.class);
+
ws.newRequest()
.setMediaType(PROTOBUF)
.setParam("id", SOME_TASK_UUID)
@Test
public void not_fail_on_queue_task_linked_on_project_with_project_scan_permission() {
- userSession.logIn("john").addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSession.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
CeQueueDto queueDto = new CeQueueDto();
queueDto.setTaskType("fake");
@Test
public void not_fail_on_archived_task_linked_on_project_with_project_scan_permission() throws Exception {
- userSession.logIn("john").addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSession.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
CeActivityDto activityDto = createActivityDto(SOME_TASK_UUID)
.setComponentUuid(project.uuid());
dbTester.commit();
}
+ private void logInAsRoot() {
+ userSession.logIn().setRoot();
+ }
+
}
import org.junit.rules.ExpectedException;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
@Test
public void fail_if_old_key_and_new_key_are_the_same() {
- setGlobalAdminPermission();
+ logInAsRoot();
ComponentDto project = insertSampleRootProject();
ComponentDto anotherProject = componentDb.insertProject();
@Test
public void fail_if_new_key_is_empty() {
- setGlobalAdminPermission();
+ logInAsRoot();
ComponentDto project = insertSampleRootProject();
expectedException.expect(BadRequestException.class);
@Test
public void fail_if_new_key_is_not_formatted_correctly() {
- setGlobalAdminPermission();
+ logInAsRoot();
ComponentDto project = insertSampleRootProject();
expectedException.expect(BadRequestException.class);
@Test
public void fail_if_update_is_not_on_module_or_project() {
- setGlobalAdminPermission();
+ logInAsRoot();
ComponentDto project = insertSampleRootProject();
ComponentDto file = componentDb.insertComponent(newFileDto(project, null));
assertThat(dbClient.componentDao().selectByKey(dbSession, key)).isPresent();
}
- private void setGlobalAdminPermission() {
- userSession.setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ private void logInAsRoot() {
+ userSession.logIn().setRoot();
}
private ComponentDto insertSampleRootProject() {
import org.sonar.api.config.MapSettings;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.utils.System2;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
@Before
public void setUp() {
- userSession.setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ userSession.logIn().setRoot();
}
@Test
}
@Test
- public void fail_if_insufficient_privileges() {
- expectedException.expect(ForbiddenException.class);
+ public void throw_ForbiddenException_if_not_root_administrator() {
userSession.anonymous();
-
ComponentDto project = insertMyProject();
+ expectedException.expect(ForbiddenException.class);
+
+
callDryRunByUuid(project.uuid(), FROM, TO);
}
import org.sonar.api.resources.Qualifiers;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDbTester;
import org.sonar.db.component.ComponentDto;
import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_ID;
import static org.sonarqube.ws.client.component.ComponentsWsParameters.PARAM_KEY;
-
public class ShowActionTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Rule
- public UserSessionRule userSession = UserSessionRule.standalone().logIn().setRoot().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ public UserSessionRule userSession = UserSessionRule.standalone().logIn().setRoot();
@Rule
public DbTester db = DbTester.create(System2.INSTANCE);
@Test
public void show_with_browse_permission() {
- userSession.anonymous().addProjectUuidPermissions(UserRole.USER, "project-uuid");
+ userSession.logIn().addProjectUuidPermissions(UserRole.USER, "project-uuid");
componentDb.insertProjectAndSnapshot(newProjectDto(db.organizations().insert(), "project-uuid"));
ShowWsResponse response = newRequest("project-uuid", null);
@Test
public void fail_if_not_enough_privilege() {
- userSession.anonymous().setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN);
+ userSession.anonymous();
+
expectedException.expect(ForbiddenException.class);
componentDb.insertProjectAndSnapshot(newProjectDto(db.organizations().insert(), "project-uuid"));
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDbTester;
@Before
public void setUp() {
userSession.logIn().setRoot();
- userSession.setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
ws = new WsActionTester(new TreeAction(dbClient, new ComponentFinder(dbClient), resourceTypes, userSession, Mockito.mock(I18n.class)));
resourceTypes.setChildrenQualifiers(Qualifiers.MODULE, Qualifiers.FILE, Qualifiers.DIRECTORY);
resourceTypes.setLeavesQualifiers(Qualifiers.FILE, Qualifiers.UNIT_TEST_FILE);
import org.junit.Test;
import org.sonar.api.issue.Issue;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDao;
ComponentDto project = ComponentTesting.newProjectDto(organization);
tester.get(ComponentDao.class).insert(session, project);
- userSessionRule.logIn("admin").addProjectPermissions(UserRole.USER, project.key()).setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ userSessionRule.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
session.commit();
// project can be seen by group "anyone"
import org.sonar.api.server.ws.WebService;
import org.sonar.api.utils.DateUtils;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
}
private void setAnyoneProjectPermission(ComponentDto project, String permission) {
- userSessionRule.logIn("admin").setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ userSessionRule.logIn().setRoot();
// TODO correctly feed default organization. Not a problem as long as issues search does not support "anyone"
// for each organization
GroupPermissionChange permissionChange = new GroupPermissionChange(PermissionChange.Operation.ADD, permission, new ProjectId(project), GroupIdOrAnyone.forAnyone(project.getOrganizationUuid()));
import org.sonar.api.server.ws.WebService;
import org.sonar.api.utils.DateUtils;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.core.util.stream.Collectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
private void setDefaultProjectPermission(ComponentDto project) {
// project can be seen by anyone and by code viewer
- userSessionRule.logIn("admin").setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ userSessionRule.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
// TODO correctly feed default organization. Not a problem as long as issues search does not support "anyone"
// for each organization
GroupPermissionChange permissionChange = new GroupPermissionChange(PermissionChange.Operation.ADD, UserRole.USER, new ProjectId(project), GroupIdOrAnyone.forAnyone(project.getOrganizationUuid()));
import org.sonar.api.measures.Metric.ValueType;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
public void setUp() {
ws = new WsTester(new CustomMeasuresWs(new CreateAction(dbClient, userSession, System2.INSTANCE, new CustomMeasureValidator(newFullTypeValidations()),
new CustomMeasureJsonWriter(new UserJsonWriter(userSession)), new ComponentFinder(dbClient))));
- userSession.logIn("login").setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ userSession.logIn("login").setRoot();
db.getDbClient().userDao().insert(dbSession, new UserDto()
.setLogin("login")
import org.sonar.api.measures.Metric;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
.setEmail("login@login.com")
.setActive(true));
ws = new WsTester(new CustomMeasuresWs(new MetricsAction(dbClient, userSession, new ComponentFinder(dbClient))));
- userSession.logIn("login").setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
defaultProject = insertDefaultProject();
+ userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, defaultProject.uuid());
}
@Test
import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
CustomMeasureJsonWriter customMeasureJsonWriter = new CustomMeasureJsonWriter(new UserJsonWriter(userSessionRule));
ws = new WsTester(new CustomMeasuresWs(new SearchAction(dbClient, customMeasureJsonWriter, userSessionRule, new ComponentFinder(dbClient))));
defaultProject = insertDefaultProject();
- userSessionRule.logIn("login").setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ userSessionRule.logIn().addProjectUuidPermissions(UserRole.ADMIN, defaultProject.uuid());
db.getDbClient().userDao().insert(dbSession, new UserDto()
.setLogin("login")
import org.sonar.api.config.MapSettings;
import org.sonar.api.measures.Metric.ValueType;
import org.sonar.api.utils.System2;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
CustomMeasureValidator validator = new CustomMeasureValidator(newFullTypeValidations());
ws = new WsTester(new CustomMeasuresWs(new UpdateAction(dbClient, userSessionRule, system, validator, new CustomMeasureJsonWriter(new UserJsonWriter(userSessionRule)))));
- userSessionRule.logIn("login").setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ userSessionRule.logIn("login").setRoot();
db.getDbClient().userDao().insert(dbSession, new UserDto()
.setLogin("login")
@Test
public void fail_if_insufficient_privileges() throws Exception {
- userSessionRule.logIn("login").setGlobalPermissions(GlobalPermissions.SCAN_EXECUTION);
+ userSessionRule.logIn();
expectedException.expect(ForbiddenException.class);
MetricDto metric = MetricTesting.newMetricDto().setEnabled(true).setValueType(ValueType.STRING.name());
dbClient.metricDao().insert(dbSession, metric);
import org.sonar.api.resources.Qualifiers;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.api.utils.DateUtils.parseDateTime;
-import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
import static org.sonar.db.component.ComponentTesting.newDeveloper;
import static org.sonar.db.component.ComponentTesting.newFileDto;
import static org.sonar.db.component.ComponentTesting.newProjectCopy;
@Before
public void setUp() {
- userSession.logIn().setRoot().setGlobalPermissions(SYSTEM_ADMIN);
+ userSession.logIn().setRoot();
}
@Test
@Test
public void fail_when_not_enough_permission() {
- userSession.logIn().setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN);
+ userSession.logIn();
componentDb.insertProjectAndSnapshot(newProjectDto(db.organizations().insert(), PROJECT_UUID));
insertNclocMetric();
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
@Before
public void setUp() {
- userSession.logIn().setRoot().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ userSession.logIn().setRoot();
resourceTypes.setChildrenQualifiers(Qualifiers.MODULE, Qualifiers.FILE, Qualifiers.DIRECTORY);
resourceTypes.setLeavesQualifiers(Qualifiers.FILE, Qualifiers.UNIT_TEST_FILE);
}
@Test
public void fail_when_insufficient_privileges() {
- userSession.anonymous().setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN);
+ userSession.logIn();
componentDb.insertProjectAndSnapshot(newProjectDto(db.getDefaultOrganization(), "project-uuid"));
expectedException.expect(ForbiddenException.class);
import org.junit.Rule;
import org.junit.Test;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.permission.PermissionQuery;
import org.sonar.db.permission.template.PermissionTemplateDto;
userSession.logIn().addOrganizationPermission("otherOrg", SYSTEM_ADMIN);
expectedException.expect(ForbiddenException.class);
- userSession.logIn().setGlobalPermissions(GlobalPermissions.SCAN_EXECUTION);
newRequest(template1.getUuid(), project.uuid(), null);
}
@Test
public void fail_if_not_authenticated() throws Exception {
- expectedException.expect(UnauthorizedException.class);
userSession.anonymous();
+ expectedException.expect(UnauthorizedException.class);
+
newRequest()
.setParam(PARAM_PERMISSION, UserRole.ADMIN)
.setParam(PARAM_TEMPLATE_ID, template.getUuid())
@Test
public void fail_if_insufficient_privileges() throws Exception {
+ userSession.logIn();
+
expectedException.expect(ForbiddenException.class);
- userSession.logIn().setGlobalPermissions(GlobalPermissions.QUALITY_GATE_ADMIN);
newRequest()
.setParam(PARAM_PERMISSION, UserRole.ADMIN)
@Test
public void fail_if_not_a_project_permission() throws Exception {
+ loginAsAdmin(db.getDefaultOrganization());
+
expectedException.expect(IllegalArgumentException.class);
- loginAsAdmin(db.getDefaultOrganization());
newRequest(user.getLogin(), template.getUuid(), GlobalPermissions.PROVISIONING);
}
@Test
public void fail_if_insufficient_privileges() throws Exception {
+ userSession.logIn();
+
expectedException.expect(ForbiddenException.class);
- userSession.logIn("john").setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN);
newRequest(user.getLogin(), template.getUuid(), DEFAULT_PERMISSION);
}
@Test
public void fail_if_not_logged_in() throws Exception {
- expectedException.expect(UnauthorizedException.class);
userSession.anonymous();
+ expectedException.expect(UnauthorizedException.class);
+
newRequest(user.getLogin(), template.getUuid(), DEFAULT_PERMISSION);
}
@Test
public void fail_if_user_missing() throws Exception {
+ loginAsAdmin(db.getDefaultOrganization());
+
expectedException.expect(IllegalArgumentException.class);
- loginAsAdmin(db.getDefaultOrganization());
newRequest(null, template.getUuid(), DEFAULT_PERMISSION);
}
@Test
public void fail_if_permission_missing() throws Exception {
+ loginAsAdmin(db.getDefaultOrganization());
+
expectedException.expect(IllegalArgumentException.class);
- loginAsAdmin(db.getDefaultOrganization());
newRequest(user.getLogin(), template.getUuid(), null);
}
@Test
public void fail_if_template_missing() throws Exception {
+ loginAsAdmin(db.getDefaultOrganization());
+
expectedException.expect(BadRequestException.class);
- loginAsAdmin(db.getDefaultOrganization());
newRequest(user.getLogin(), null, DEFAULT_PERMISSION);
}
@Test
public void fail_if_user_does_not_exist() throws Exception {
+ loginAsAdmin(db.getDefaultOrganization());
+
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("User with login 'unknown-login' is not found");
- loginAsAdmin(db.getDefaultOrganization());
newRequest("unknown-login", template.getUuid(), DEFAULT_PERMISSION);
}
@Test
public void fail_if_template_key_does_not_exist() throws Exception {
+ loginAsAdmin(db.getDefaultOrganization());
+
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Permission template with id 'unknown-key' is not found");
- loginAsAdmin(db.getDefaultOrganization());
newRequest(user.getLogin(), "unknown-key", DEFAULT_PERMISSION);
}
import javax.annotation.Nullable;
import org.junit.Test;
import org.sonar.api.resources.Qualifiers;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.organization.DefaultTemplates;
public void fail_if_not_admin() throws Exception {
OrganizationDto organization = db.organizations().insert();
PermissionTemplateDto template = insertTemplate(organization);
- userSession.logIn().setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN);
+ userSession.logIn();
expectedException.expect(ForbiddenException.class);
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.sonar.core.permission.GlobalPermissions.PROVISIONING;
-import static org.sonar.core.permission.GlobalPermissions.QUALITY_GATE_ADMIN;
import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.server.project.ws.ProjectsWsSupport.PARAM_ORGANIZATION;
import static org.sonar.test.JsonAssert.assertJson;
@Test
public void fail_when_missing_project_parameter() throws Exception {
- userSession.setGlobalPermissions(PROVISIONING);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The 'project' parameter is missing");
@Test
public void fail_when_missing_name_parameter() throws Exception {
- userSession.setGlobalPermissions(PROVISIONING);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The 'name' parameter is missing");
@Test
public void fail_when_missing_create_project_permission() throws Exception {
- userSession.setGlobalPermissions(QUALITY_GATE_ADMIN);
expectedException.expect(ForbiddenException.class);
call(CreateRequest.builder().setKey(DEFAULT_PROJECT_KEY).setName(DEFAULT_PROJECT_NAME).build());
}
@Test
- public void global_admin_deletes_project_by_id() throws Exception {
+ public void root_administrator_deletes_project_by_id() throws Exception {
ComponentDto project = componentDbTester.insertProject();
- userSessionRule.logIn().setGlobalPermissions(UserRole.ADMIN);
+ userSessionRule.logIn().setRoot();
WsTester.TestRequest request = newRequest().setParam(PARAM_ID, project.uuid());
call(request);
}
@Test
- public void global_admin_deletes_project_by_key() throws Exception {
+ public void root_administrator_deletes_project_by_key() throws Exception {
ComponentDto project = componentDbTester.insertProject();
- userSessionRule.logIn().setGlobalPermissions(UserRole.ADMIN);
+ userSessionRule.logIn().setRoot();
call(newRequest().setParam(PARAM_KEY, project.key()));
assertThat(verifyDeletedKey()).isEqualTo(project.key());
import org.junit.rules.ExpectedException;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Rule
- public UserSessionRule userSession = UserSessionRule.standalone().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ public UserSessionRule userSession = UserSessionRule.standalone();
@Rule
public DbTester db = DbTester.create();
private DbClient dbClient = db.getDbClient();
private WsActionTester ws = new WsActionTester(new DeleteAction(dbClient, userSession));
@Test
- public void delete_as_global_admin() {
+ public void root_administrator_deletes_analysis() {
ComponentDto project = db.components().insertProject();
db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setLast(false).setStatus(STATUS_PROCESSED));
db.components().insertSnapshot(newAnalysis(project).setUuid("A2").setLast(true).setStatus(STATUS_PROCESSED));
+ userSession.logIn().setRoot();
call("A1");
}
@Test
- public void delete_as_project_admin() {
+ public void project_administrator_deletes_analysis() {
ComponentDto project = db.components().insertProject();
db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setLast(false).setStatus(STATUS_PROCESSED));
db.components().insertSnapshot(newAnalysis(project).setUuid("A2").setLast(true).setStatus(STATUS_PROCESSED));
- userSession.anonymous().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
call("A1");
}
@Test
- public void fail_when_last_analysis() {
+ public void last_analysis_cannot_be_deleted() {
ComponentDto project = db.components().insertProject();
db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setLast(true));
+ userSession.logIn().setRoot();
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The last analysis 'A1' cannot be deleted");
@Test
public void fail_when_analysis_not_found() {
+ userSession.logIn().setRoot();
+
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Analysis 'A42' not found");
@Test
public void fail_when_analysis_is_unprocessed() {
+ userSession.logIn().setRoot();
ComponentDto project = db.components().insertProject();
db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setLast(false).setStatus(STATUS_UNPROCESSED));
@Test
public void fail_when_not_enough_permission() {
- userSession.anonymous();
+ userSession.logIn();
ComponentDto project = db.components().insertProject();
db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setLast(false));
import org.sonar.api.server.ws.WebService;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Rule
- public UserSessionRule userSession = UserSessionRule.standalone().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ public UserSessionRule userSession = UserSessionRule.standalone();
@Rule
public DbTester db = DbTester.create(System2.INSTANCE);
private DbClient dbClient = db.getDbClient();
@Test
public void delete_event() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert()));
+ ComponentDto project = newProjectDto(db.organizations().insert());
+ SnapshotDto analysis = db.components().insertProjectAndSnapshot(project);
db.events().insertEvent(newEvent(analysis).setUuid("E1"));
db.events().insertEvent(newEvent(analysis).setUuid("E2"));
+ logInAsProjectAdministrator(project);
call("E2");
ComponentDto project = db.components().insertProject();
SnapshotDto analysis = db.components().insertSnapshot(newAnalysis(project).setVersion("5.6.3").setLast(false));
db.events().insertEvent(newEvent(analysis).setUuid("E1").setCategory(VERSION.getLabel()));
+ logInAsProjectAdministrator(project);
call("E1");
assertThat(newAnalysis.getVersion()).isNull();
}
- @Test
- public void delete_event_as_project_admin() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert(), "P1"));
- db.events().insertEvent(newEvent(analysis).setUuid("E1"));
- userSession.anonymous().addProjectUuidPermissions(UserRole.ADMIN, "P1");
-
- call("E1");
-
- assertThat(db.countRowsOfTable("events")).isEqualTo(0);
- }
-
@Test
public void fail_if_version_for_last_analysis() {
ComponentDto project = db.components().insertProject();
SnapshotDto analysis = db.components().insertSnapshot(newAnalysis(project).setVersion("5.6.3").setLast(true));
db.events().insertEvent(newEvent(analysis).setUuid("E1").setCategory(VERSION.getLabel()));
+ logInAsProjectAdministrator(project);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Cannot delete the version event of last analysis");
@Test
public void fail_if_category_different_than_other_and_version() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert(), "P1"));
+ ComponentDto project = newProjectDto(db.organizations().insert(), "P1");
+ SnapshotDto analysis = db.components().insertProjectAndSnapshot(project);
db.events().insertEvent(newEvent(analysis).setUuid("E1").setCategory("Profile"));
+ logInAsProjectAdministrator(project);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Event of category 'QUALITY_PROFILE' cannot be modified. Authorized categories: VERSION, OTHER");
public void fail_if_not_enough_permission() {
SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert()));
db.events().insertEvent(newEvent(analysis).setUuid("E1"));
- userSession.anonymous();
+ userSession.logIn();
expectedException.expect(ForbiddenException.class);
request.execute();
}
+
+ private void logInAsProjectAdministrator(ComponentDto project) {
+ userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ }
}
import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDto;
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Rule
- public UserSessionRule userSession = UserSessionRule.standalone().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ public UserSessionRule userSession = UserSessionRule.standalone();
@Rule
public DbTester db = DbTester.create();
private DbClient dbClient = db.getDbClient();
import org.sonar.api.server.ws.WebService;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
public class UpdateEventActionTest {
@Rule
- public UserSessionRule userSession = UserSessionRule.standalone().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ public UserSessionRule userSession = UserSessionRule.standalone();
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Rule
public DbTester db = DbTester.create(System2.INSTANCE);
+
private DbClient dbClient = db.getDbClient();
private DbSession dbSession = db.getSession();
-
private WsActionTester ws = new WsActionTester(new UpdateEventAction(dbClient, userSession));
@Test
.setCategory(OTHER.getLabel())
.setName("Original Name")
.setDescription("Original Description"));
+ logInAsProjectAdministrator(project);
String result = ws.newRequest()
.setParam(PARAM_EVENT, "E1")
assertJson(result).isSimilarTo(getClass().getResource("update_event-example.json"));
}
-
@Test
public void update_name_in_db() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert()));
+ SnapshotDto analysis = createAnalysisAndLogInAsProjectAdministrator("5.6");
EventDto originalEvent = db.events().insertEvent(newEvent(analysis).setUuid("E1").setName("Original Name"));
call("E1", "name");
@Test
public void ws_response_with_updated_name() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert()));
+ SnapshotDto analysis = createAnalysisAndLogInAsProjectAdministrator("5.6");
EventDto originalEvent = db.events().insertEvent(newEvent(analysis).setUuid("E1").setName("Original Name"));
ProjectAnalyses.Event result = call("E1", "name").getEvent();
@Test
public void update_VERSION_event_update_analysis_version() {
- ComponentDto project = db.components().insertProject();
- SnapshotDto analysis = db.components().insertSnapshot(newAnalysis(project).setVersion("5.6"));
+ SnapshotDto analysis = createAnalysisAndLogInAsProjectAdministrator("5.6");
db.events().insertEvent(newEvent(analysis).setUuid("E1").setCategory(VERSION.getLabel()));
call("E1", "6.3");
@Test
public void update_OTHER_event_does_not_update_analysis_version() {
- ComponentDto project = db.components().insertProject();
- SnapshotDto analysis = db.components().insertSnapshot(newAnalysis(project).setVersion("5.6"));
+ SnapshotDto analysis = createAnalysisAndLogInAsProjectAdministrator("5.6");
db.events().insertEvent(newEvent(analysis).setUuid("E1").setCategory(OTHER.getLabel()));
call("E1", "6.3");
@Test
public void update_name_only_in_db() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert()));
+ SnapshotDto analysis = createAnalysisAndLogInAsProjectAdministrator("5.6");
EventDto originalEvent = db.events().insertEvent(newEvent(analysis).setUuid("E1").setName("Original Name").setDescription("Original Description"));
call("E1", "name");
}
@Test
- public void update_as_project_admin() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert(), "P1"));
- db.events().insertEvent(newEvent(analysis).setUuid("E1").setName("Original Name"));
- userSession.anonymous().addProjectUuidPermissions(UserRole.ADMIN, "P1");
-
- call("E1", "name");
-
- EventDto newEvent = dbClient.eventDao().selectByUuid(dbSession, "E1").get();
- assertThat(newEvent.getName()).isEqualTo("name");
- assertThat(newEvent.getDescription()).isNull();
- }
-
- @Test
- public void ws_definition() {
+ public void test_ws_definition() {
WebService.Action definition = ws.getDef();
assertThat(definition.key()).isEqualTo("update_event");
}
@Test
- public void fail_if_insufficient_permissions() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert()));
+ public void throw_ForbiddenException_if_not_project_administrator() {
+ ComponentDto project = newProjectDto(db.organizations().insert());
+ SnapshotDto analysis = db.components().insertProjectAndSnapshot(project);
db.events().insertEvent(newEvent(analysis).setUuid("E1"));
- userSession.anonymous();
+ userSession.logIn().addProjectUuidPermissions(project.uuid(), UserRole.USER);
expectedException.expect(ForbiddenException.class);
@Test
public void fail_if_event_is_not_found() {
+ userSession.logIn().setRoot();
+
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Event 'E42' not found");
@Test
public void fail_if_no_name() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert()));
+ SnapshotDto analysis = createAnalysisAndLogInAsProjectAdministrator("5.6");
db.events().insertEvent(newEvent(analysis).setUuid("E1"));
expectedException.expect(NullPointerException.class);
@Test
public void fail_if_blank_name() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert()));
+ SnapshotDto analysis = createAnalysisAndLogInAsProjectAdministrator("5.6");
db.events().insertEvent(newEvent(analysis).setUuid("E1"));
expectedException.expect(IllegalArgumentException.class);
@Test
public void fail_if_category_other_than_other_or_version() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert()));
+ SnapshotDto analysis = createAnalysisAndLogInAsProjectAdministrator("5.6");
db.events().insertEvent(newEvent(analysis).setUuid("E1").setCategory("Profile"));
expectedException.expect(IllegalArgumentException.class);
@Test
public void fail_if_other_event_with_same_name_on_same_analysis() {
- SnapshotDto analysis = db.components().insertProjectAndSnapshot(newProjectDto(db.organizations().insert()));
+ SnapshotDto analysis = createAnalysisAndLogInAsProjectAdministrator("5.6");
db.events().insertEvent(newEvent(analysis).setUuid("E1").setCategory(OTHER.getLabel()).setName("E1 name"));
db.events().insertEvent(newEvent(analysis).setUuid("E2").setCategory(OTHER.getLabel()).setName("E2 name"));
throw Throwables.propagate(e);
}
}
+
+ private void logInAsProjectAdministrator(ComponentDto project) {
+ userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ }
+
+ private SnapshotDto createAnalysisAndLogInAsProjectAdministrator(String version) {
+ ComponentDto project = db.components().insertProject();
+ SnapshotDto analysis = db.components().insertSnapshot(newAnalysis(project).setVersion(version));
+ logInAsProjectAdministrator(project);
+ return analysis;
+ }
}
import org.sonarqube.ws.WsProjectLinks;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonar.test.JsonAssert.assertJson;
underTest = new CreateAction(dbClient, userSession, componentFinder);
ws = new WsActionTester(underTest);
- userSession.logIn("login").setGlobalPermissions(SYSTEM_ADMIN);
+ userSession.logIn().setRoot();
}
@Test
assertJson(result).ignoreFields("id").isSimilarTo(getClass().getResource("create-example.json"));
}
- @Test
- public void global_admin() throws IOException {
- userSession.logIn().setGlobalPermissions(SYSTEM_ADMIN);
- ComponentDto project = insertProject();
- createAndTest(project);
- }
-
@Test
public void require_project_admin() throws IOException {
- userSession.logIn();
ComponentDto project = insertProject();
- userSession.addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
createAndTest(project);
}
*/
package org.sonar.server.projectlink.ws;
-import java.io.IOException;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.sonar.server.ws.WsActionTester;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonarqube.ws.client.projectlinks.ProjectLinksWsParameters.PARAM_ID;
public void setUp() {
underTest = new DeleteAction(dbClient, userSession);
ws = new WsActionTester(underTest);
-
- userSession.logIn("login").setGlobalPermissions(SYSTEM_ADMIN);
}
@Test
public void no_response() {
ComponentDto project = insertProject();
ComponentLinkDto link = insertCustomLink(project.uuid());
+ userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
TestResponse response = deleteLink(link.getId());
ComponentDto project = insertProject();
ComponentLinkDto link = insertCustomLink(project.uuid());
long id = link.getId();
-
- deleteLink(id);
- assertLinkIsDeleted(id);
- }
-
- @Test
- public void project_admin() throws IOException {
- userSession.logIn("login");
-
- ComponentDto project = insertProject();
- userSession.addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
-
- ComponentLinkDto link = insertCustomLink(project.uuid());
- long id = link.getId();
+ userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
deleteLink(id);
assertLinkIsDeleted(id);
ComponentLinkDto customLink2 = insertCustomLink(project2.uuid());
Long id1 = customLink1.getId();
Long id2 = customLink2.getId();
+ userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project1.uuid(), project2.uuid());
deleteLink(id1);
assertLinkIsDeleted(id1);
public void fail_when_delete_provided_link() {
ComponentDto project = insertProject();
ComponentLinkDto link = insertHomepageLink(project.uuid());
+ userSession.logIn().setRoot();
expectedException.expect(BadRequestException.class);
+
deleteLink(link.getId());
}
@Test
public void fail_when_no_link() {
expectedException.expect(NotFoundException.class);
+
deleteLink("175");
}
ComponentLinkDto link = insertCustomLink(project.uuid());
expectedException.expect(ForbiddenException.class);
+
deleteLink(link.getId());
}
@Test
public void fail_if_not_project_admin() {
- userSession.logIn("login");
+ userSession.logIn();
ComponentDto project = insertProject();
ComponentLinkDto link = insertCustomLink(project.uuid());
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.sonar.core.permission.GlobalPermissions.QUALITY_PROFILE_ADMIN;
-import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
import static org.sonar.server.qualitygate.QualityGates.SONAR_QUALITYGATE_PROPERTY;
public class DeselectActionTest {
assertDeselected(project.getId());
}
- @Test
- public void system_admin() throws Exception {
- String gateId = String.valueOf(gate.getId());
- associateProjectToQualityGate(project.getId(), gateId);
-
- userSession.logIn().setGlobalPermissions(SYSTEM_ADMIN);
-
- callByKey(gateId, project.getKey());
-
- assertDeselected(project.getId());
- }
-
@Test
public void fail_when_no_quality_gate() throws Exception {
expectedException.expect(NotFoundException.class);
import org.junit.rules.ExpectedException;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
public class GetByProjectActionTest {
@Rule
- public UserSessionRule userSession = UserSessionRule.standalone().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ public UserSessionRule userSession = UserSessionRule.standalone();
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Rule
ComponentDto project = componentDb.insertComponent(newProjectDto(organizationDto));
QualityGateDto qualityGate = insertQualityGate("My team QG");
associateProjectToQualityGate(project.getId(), qualityGate.getId());
+ logInAsProjectUser(project);
String result = ws.newRequest().setParam(PARAM_PROJECT_ID, project.uuid()).execute().getInput();
public void empty_response() {
ComponentDto project = componentDb.insertProject();
insertQualityGate("Another QG");
+ logInAsProjectUser(project);
String result = ws.newRequest().setParam(PARAM_PROJECT_ID, project.uuid()).execute().getInput();
ComponentDto project = componentDb.insertComponent(newProjectDto(db.organizations().insert()));
QualityGateDto dbQualityGate = insertQualityGate("Sonar way");
setDefaultQualityGate(dbQualityGate.getId());
+ logInAsProjectUser(project);
GetByProjectWsResponse result = callByUuid(project.uuid());
QualityGateDto dbQualityGate = insertQualityGate("My team QG");
setDefaultQualityGate(defaultDbQualityGate.getId());
associateProjectToQualityGate(project.getId(), dbQualityGate.getId());
+ logInAsProjectUser(project);
GetByProjectWsResponse result = callByUuid(project.uuid());
ComponentDto project = componentDb.insertComponent(newProjectDto(db.organizations().insert()));
QualityGateDto dbQualityGate = insertQualityGate("My team QG");
associateProjectToQualityGate(project.getId(), dbQualityGate.getId());
+ logInAsProjectUser(project);
GetByProjectWsResponse result = callByKey(project.key());
@Test
public void fail_when_insufficient_permission() {
- expectedException.expect(ForbiddenException.class);
-
ComponentDto project = componentDb.insertComponent(newProjectDto(db.getDefaultOrganization()));
- userSession.anonymous().setGlobalPermissions(GlobalPermissions.SCAN_EXECUTION);
+ userSession.logIn();
QualityGateDto dbQualityGate = insertQualityGate("Sonar way");
setDefaultQualityGate(dbQualityGate.getId());
+ expectedException.expect(ForbiddenException.class);
+
callByUuid(project.uuid());
}
.setValue(String.valueOf(qualityGateId)));
db.commit();
}
+
+ private void logInAsProjectUser(ComponentDto project) {
+ userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ }
}
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rule.RuleStatus;
import org.sonar.api.server.rule.RuleParamType;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.qualityprofile.ActiveRuleDto;
activation.setSeverity(BLOCKER);
activation.setParameter("max", "7");
activation.setParameter("min", "3");
- userSessionRule.logIn().setGlobalPermissions(GlobalPermissions.SYSTEM_ADMIN);
+ userSessionRule.logIn().setRoot();
List<ActiveRuleChange> changes = ruleActivator.activate(dbSession, activation, profileDto);
dbSession.commit();
dbSession.clearCache();
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rule.RuleStatus;
import org.sonar.api.rule.Severity;
-import org.sonar.core.permission.GlobalPermissions;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.rule.RuleDao;
public static ServerTester tester = new ServerTester().withEsIndexes();
@Rule
- public UserSessionRule userSessionRule = UserSessionRule.forServerTester(tester).logIn()
- .setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN);
+ public UserSessionRule userSessionRule = UserSessionRule.forServerTester(tester).logIn().setRoot();
WsTester wsTester;
RuleDao ruleDao;
import org.sonar.db.rule.RuleDto.Format;
import org.sonar.db.rule.RuleParamDto;
import org.sonar.db.rule.RuleTesting;
+import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.qualityprofile.index.ActiveRuleIndexer;
import org.sonar.server.rule.NewCustomRule;
import org.sonar.server.rule.RuleCreator;
@Rule
public UserSessionRule userSessionRule = UserSessionRule.forServerTester(tester).logIn()
- .setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN);
+ .addOrganizationPermission(tester.get(DefaultOrganizationProvider.class).get().getUuid(), GlobalPermissions.QUALITY_PROFILE_ADMIN);
WsTester wsTester;