aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-04-19 10:48:19 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-04-27 14:25:54 +0200
commit398748bdeab49996010a6c4624bb100ce1b7509b (patch)
tree0ec9e911bfd6668762249acc35697b21ff869360
parentffc0964022c687bcda207751adbecce09ced0c3c (diff)
downloadsonarqube-398748bdeab49996010a6c4624bb100ce1b7509b.tar.gz
sonarqube-398748bdeab49996010a6c4624bb100ce1b7509b.zip
SONAR-9140 only ComponentDto can be used to populate UserSessionRule
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/user/UserSession.java6
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/batch/IssuesActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/batch/ProjectDataLoaderMediumTest.java34
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/batch/ProjectDataLoaderTest.java8
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java8
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityStatusActionTest.java5
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java16
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/component/ComponentServiceUpdateKeyTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/component/ws/AppActionTest.java16
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/component/ws/ShowActionTest.java13
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/component/ws/TreeActionTest.java6
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/computation/queue/ReportSubmitterTest.java16
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/duplication/ws/ShowActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/favorite/ws/AddActionTest.java11
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ActionFinderTest.java3
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/IssueFinderTest.java11
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryFactoryTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/IssueServiceMediumTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/SetSeverityActionTest.java28
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/SetTypeActionTest.java23
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/TransitionActionTest.java8
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/TransitionServiceTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/AddCommentActionTest.java12
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java17
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/BulkChangeActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/ChangelogActionTest.java39
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/DeleteCommentActionTest.java14
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/DoTransitionActionTest.java14
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/EditCommentActionTest.java18
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionComponentsMediumTest.java8
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetSeverityActionTest.java21
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetTagsActionTest.java26
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetTypeActionTest.java23
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/ws/TagsActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/CreateActionTest.java52
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/DeleteActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/MetricsActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/SearchActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/UpdateActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java6
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/measure/ws/SearchHistoryActionTest.java12
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddGroupActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/GroupsActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveGroupActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveUserActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchProjectPermissionsActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/project/ws/DeleteActionTest.java19
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/CreateEventActionTest.java3
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/DeleteActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/DeleteEventActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/SearchActionTest.java14
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/UpdateEventActionTest.java5
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/CreateActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/DeleteActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/SearchActionTest.java6
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/projecttag/ws/SetActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/property/ws/IndexActionTest.java8
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/DeselectActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/GetByProjectActionTest.java7
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/ProjectStatusActionTest.java14
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/SelectActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/AddProjectActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/RemoveProjectActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/setting/ws/ListDefinitionsActionTest.java8
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/setting/ws/ResetActionTest.java4
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/setting/ws/SetActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/setting/ws/ValuesActionTest.java16
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java11
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/source/ws/IndexActionTest.java6
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/source/ws/LinesActionTest.java21
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/source/ws/RawActionTest.java2
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/source/ws/ScmActionTest.java34
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/source/ws/ShowActionTest.java6
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/test/ws/CoveredFilesActionTest.java20
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/test/ws/ListActionTest.java26
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/tester/AbstractMockUserSession.java28
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/tester/UserSessionRule.java11
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java54
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/webhook/ws/WebhookDeliveriesActionTest.java12
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/webhook/ws/WebhookDeliveryActionTest.java6
85 files changed, 475 insertions, 428 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/user/UserSession.java b/server/sonar-server/src/main/java/org/sonar/server/user/UserSession.java
index 379192f6b29..06aa9ca0004 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/user/UserSession.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/user/UserSession.java
@@ -111,7 +111,10 @@ public interface UserSession {
* Using {@link #hasComponentPermission(String, ComponentDto)} is recommended
* because it does not have to load project if the referenced component
* is not a project.
+ *
+ * @deprecated use {@link #hasComponentPermission(String, ComponentDto)} instead
*/
+ @Deprecated
boolean hasComponentUuidPermission(String permission, String componentUuid);
/**
@@ -123,7 +126,10 @@ public interface UserSession {
/**
* Ensures that {@link #hasComponentUuidPermission(String, String)} is {@code true},
* otherwise throws a {@link org.sonar.server.exceptions.ForbiddenException}.
+ *
+ * @deprecated use {@link #checkComponentPermission(String, ComponentDto)} instead
*/
+ @Deprecated
UserSession checkComponentUuidPermission(String permission, String componentUuid);
/**
diff --git a/server/sonar-server/src/test/java/org/sonar/server/batch/IssuesActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/batch/IssuesActionTest.java
index da684380a75..b5c4552c2c7 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/batch/IssuesActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/batch/IssuesActionTest.java
@@ -311,7 +311,7 @@ public class IssuesActionTest {
}
private void addBrowsePermissionOnComponent(ComponentDto project) {
- userSessionRule.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSessionRule.addProjectPermission(UserRole.USER, project);
}
private ServerIssue call(String componentKey) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/batch/ProjectDataLoaderMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/batch/ProjectDataLoaderMediumTest.java
index 13bc7138812..8c70e8e7405 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/batch/ProjectDataLoaderMediumTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/batch/ProjectDataLoaderMediumTest.java
@@ -88,7 +88,7 @@ public class ProjectDataLoaderMediumTest {
OrganizationDto organizationDto = OrganizationTesting.newOrganizationDto();
dbClient.organizationDao().insert(dbSession, organizationDto);
ComponentDto project = ComponentTesting.newProjectDto(organizationDto);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, project);
addDefaultProfile();
@@ -112,7 +112,7 @@ public class ProjectDataLoaderMediumTest {
OrganizationDto organizationDto = OrganizationTesting.newOrganizationDto();
dbClient.organizationDao().insert(dbSession, organizationDto);
ComponentDto project = ComponentTesting.newProjectDto(organizationDto);
- userSessionRule.logIn("john").addProjectUuidPermissions(SCAN_EXECUTION, project.projectUuid());
+ userSessionRule.logIn("john").addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, project);
addDefaultProfile();
@@ -136,7 +136,7 @@ public class ProjectDataLoaderMediumTest {
OrganizationDto organizationDto = OrganizationTesting.newOrganizationDto();
dbClient.organizationDao().insert(dbSession, organizationDto);
ComponentDto project = ComponentTesting.newProjectDto(organizationDto);
- userSessionRule.logIn("john").addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSessionRule.logIn("john").addProjectPermission(UserRole.USER, project);
dbClient.componentDao().insert(dbSession, project);
addDefaultProfile();
@@ -158,7 +158,7 @@ public class ProjectDataLoaderMediumTest {
OrganizationDto organizationDto = OrganizationTesting.newOrganizationDto();
dbClient.organizationDao().insert(dbSession, organizationDto);
ComponentDto project = ComponentTesting.newProjectDto(organizationDto);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, project);
addDefaultProfile();
@@ -194,7 +194,7 @@ public class ProjectDataLoaderMediumTest {
OrganizationDto organizationDto = OrganizationTesting.newOrganizationDto();
dbClient.organizationDao().insert(dbSession, organizationDto);
ComponentDto project = ComponentTesting.newProjectDto(organizationDto);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, project);
addDefaultProfile();
@@ -225,7 +225,7 @@ public class ProjectDataLoaderMediumTest {
OrganizationDto organizationDto = OrganizationTesting.newOrganizationDto();
dbClient.organizationDao().insert(dbSession, organizationDto);
ComponentDto project = ComponentTesting.newProjectDto(organizationDto);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, project);
addDefaultProfile();
@@ -272,7 +272,7 @@ public class ProjectDataLoaderMediumTest {
OrganizationDto organizationDto = OrganizationTesting.newOrganizationDto();
dbClient.organizationDao().insert(dbSession, organizationDto);
ComponentDto project = ComponentTesting.newProjectDto(organizationDto);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, project);
addDefaultProfile();
@@ -318,7 +318,7 @@ public class ProjectDataLoaderMediumTest {
dbClient.organizationDao().insert(dbSession, organizationDto);
// No snapshot attached on the project -> provisioned project
ComponentDto project = ComponentTesting.newProjectDto(organizationDto);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, project);
addDefaultProfile();
@@ -348,7 +348,7 @@ public class ProjectDataLoaderMediumTest {
// No module properties
ComponentDto subModule = ComponentTesting.newModuleDto(module);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, subModule);
// Sub module properties
@@ -386,7 +386,7 @@ public class ProjectDataLoaderMediumTest {
dbClient.propertiesDao().saveProperty(dbSession, new PropertyDto().setKey("sonar.jira.login.secured").setValue("john").setResourceId(module.getId()));
ComponentDto subModule = ComponentTesting.newModuleDto(module);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, subModule);
// Sub module properties
@@ -423,7 +423,7 @@ public class ProjectDataLoaderMediumTest {
// No module property
ComponentDto subModule = ComponentTesting.newModuleDto(module);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, subModule);
// No sub module property
@@ -458,7 +458,7 @@ public class ProjectDataLoaderMediumTest {
dbClient.propertiesDao().saveProperty(dbSession, new PropertyDto().setKey("sonar.jira.project.key").setValue("SONAR-SERVER").setResourceId(module.getId()));
ComponentDto subModule = ComponentTesting.newModuleDto(module);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, subModule);
// No sub module property
@@ -499,7 +499,7 @@ public class ProjectDataLoaderMediumTest {
dbClient.componentDao().insert(dbSession, project);
dbSession.commit();
- userSessionRule.logIn("john").addProjectUuidPermissions(UserRole.USER, project.projectUuid());
+ userSessionRule.logIn("john").addProjectPermission(UserRole.USER, project);
thrown.expect(ForbiddenException.class);
thrown.expectMessage("You're only authorized to execute a local (preview) SonarQube analysis without pushing the results to the SonarQube server. " +
@@ -515,7 +515,7 @@ public class ProjectDataLoaderMediumTest {
dbClient.componentDao().insert(dbSession, project);
dbSession.commit();
- userSessionRule.logIn("john").addProjectUuidPermissions(GlobalPermissions.SCAN_EXECUTION, project.projectUuid());
+ userSessionRule.logIn("john").addProjectPermission(GlobalPermissions.SCAN_EXECUTION, project);
thrown.expect(ForbiddenException.class);
thrown.expectMessage("You don't have the required permissions to access this project. Please contact your SonarQube administrator.");
@@ -527,7 +527,7 @@ public class ProjectDataLoaderMediumTest {
OrganizationDto organizationDto = OrganizationTesting.newOrganizationDto();
dbClient.organizationDao().insert(dbSession, organizationDto);
ComponentDto project = ComponentTesting.newProjectDto(organizationDto);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, project);
addDefaultProfile();
@@ -547,7 +547,7 @@ public class ProjectDataLoaderMediumTest {
OrganizationDto organizationDto = OrganizationTesting.newOrganizationDto();
dbClient.organizationDao().insert(dbSession, organizationDto);
ComponentDto project = ComponentTesting.newProjectDto(organizationDto);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, project);
addDefaultProfile();
@@ -585,7 +585,7 @@ public class ProjectDataLoaderMediumTest {
tester.get(FileSourceDao.class).insert(dbSession, newFileSourceDto(projectFile).setSrcHash("123456").setRevision("987654321"));
ComponentDto module = ComponentTesting.newModuleDto(project);
- userSessionRule.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSessionRule.logIn().addProjectPermission(SCAN_EXECUTION, project);
dbClient.componentDao().insert(dbSession, module);
// File on module
diff --git a/server/sonar-server/src/test/java/org/sonar/server/batch/ProjectDataLoaderTest.java b/server/sonar-server/src/test/java/org/sonar/server/batch/ProjectDataLoaderTest.java
index 49adcb22ced..a5f342d9fd7 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/batch/ProjectDataLoaderTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/batch/ProjectDataLoaderTest.java
@@ -141,7 +141,7 @@ public class ProjectDataLoaderTest {
@Test
public void throw_ForbiddenException_if_browse_permission_but_not_scan_permission() {
ComponentDto project = dbTester.components().insertProject();
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
expectedException.expect(ForbiddenException.class);
expectedException.expectMessage("You're only authorized to execute a local (preview) SonarQube analysis without pushing the results to the SonarQube server");
@@ -152,7 +152,7 @@ public class ProjectDataLoaderTest {
@Test
public void issues_mode_is_allowed_if_user_has_browse_permission() {
ComponentDto project = dbTester.components().insertProject();
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
ProjectRepositories repositories = underTest.load(ProjectDataQuery.create().setModuleKey(project.key()).setIssuesMode(true));
@@ -162,7 +162,7 @@ public class ProjectDataLoaderTest {
@Test
public void issues_mode_is_forbidden_if_user_doesnt_have_browse_permission() {
ComponentDto project = dbTester.components().insertProject();
- userSession.logIn().addProjectUuidPermissions(GlobalPermissions.SCAN_EXECUTION, project.uuid());
+ userSession.logIn().addProjectPermission(GlobalPermissions.SCAN_EXECUTION, project);
expectedException.expect(ForbiddenException.class);
expectedException.expectMessage("You don't have the required permissions to access this project");
@@ -174,7 +174,7 @@ public class ProjectDataLoaderTest {
public void scan_permission_on_organization_is_enough_even_without_scan_permission_on_project() {
ComponentDto project = dbTester.components().insertProject();
userSession.logIn().addPermission(SCAN, project.getOrganizationUuid());
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
ProjectRepositories repositories = underTest.load(ProjectDataQuery.create().setModuleKey(project.key()).setIssuesMode(true));
diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java
index 7a738a8ac51..73e57f68478 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityActionTest.java
@@ -211,9 +211,9 @@ public class ActivityActionTest {
@Test
public void project_administrator_can_access_his_project_activity() {
- dbTester.components().insertProject(dbTester.organizations().insert(), "PROJECT_1");
+ ComponentDto project = dbTester.components().insertProject(dbTester.organizations().insert(), "PROJECT_1");
// no need to be a system admin
- userSession.logIn().addComponentUuidPermission(UserRole.ADMIN, "PROJECT_1", "PROJECT_1");
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
insertActivity("T1", "PROJECT_1", CeActivityDto.Status.SUCCESS);
insertActivity("T2", "PROJECT_2", CeActivityDto.Status.FAILED);
@@ -305,7 +305,7 @@ public class ActivityActionTest {
// is reserved to roots
ComponentDto view = dbTester.components().insertView();
insertActivity("T1", view.uuid(), CeActivityDto.Status.SUCCESS);
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, view.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, view);
expectedException.expect(ForbiddenException.class);
expectedException.expectMessage("Insufficient privileges");
@@ -318,7 +318,7 @@ public class ActivityActionTest {
ComponentDto project = dbTester.components().insertProject(dbTester.getDefaultOrganization(), "PROJECT_1");
insertQueue("T1", "PROJECT_1", CeQueueDto.Status.IN_PROGRESS);
insertActivity("T1", "PROJECT_1", CeActivityDto.Status.SUCCESS);
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
ActivityResponse result = call(ws.newRequest()
.setParam(PARAM_COMPONENT_ID, "PROJECT_1")
diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityStatusActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityStatusActionTest.java
index 1fab7fc1069..35534909ba1 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityStatusActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ActivityStatusActionTest.java
@@ -80,10 +80,11 @@ public class ActivityStatusActionTest {
public void status_for_a_project_as_project_admin() {
String projectUuid = "project-uuid";
String anotherProjectUuid = "another-project-uuid";
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, projectUuid);
OrganizationDto organizationDto = db.organizations().insert();
- db.components().insertComponent(newProjectDto(organizationDto, projectUuid));
+ ComponentDto project = newProjectDto(organizationDto, projectUuid);
+ db.components().insertComponent(project);
db.components().insertComponent(newProjectDto(organizationDto, anotherProjectUuid));
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
// pending tasks returned
insertInQueue(CeQueueDto.Status.PENDING, projectUuid);
insertInQueue(CeQueueDto.Status.PENDING, projectUuid);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java
index 03c3dc02dc3..fa1b0352e99 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/ComponentActionTest.java
@@ -60,8 +60,8 @@ public class ComponentActionTest {
@Test
public void empty_queue_and_empty_activity() {
- dbTester.components().insertComponent(newProjectDto(dbTester.organizations().insert(), "PROJECT_1"));
- userSession.addComponentUuidPermission(UserRole.USER, "PROJECT_1", "PROJECT_1");
+ ComponentDto project = dbTester.components().insertComponent(newProjectDto(dbTester.organizations().insert(), "PROJECT_1"));
+ userSession.addProjectPermission(UserRole.USER, project);
WsCe.ProjectResponse response = ws.newRequest()
.setParam("componentId", "PROJECT_1")
@@ -74,8 +74,8 @@ public class ComponentActionTest {
@Test
public void project_tasks() {
OrganizationDto organizationDto = dbTester.organizations().insert();
- dbTester.components().insertComponent(newProjectDto(organizationDto, "PROJECT_1"));
- userSession.addComponentUuidPermission(UserRole.USER, "PROJECT_1", "PROJECT_1");
+ ComponentDto project = dbTester.components().insertComponent(newProjectDto(organizationDto, "PROJECT_1"));
+ userSession.addProjectPermission(UserRole.USER, project);
insertActivity("T1", "PROJECT_1", CeActivityDto.Status.SUCCESS);
insertActivity("T2", "PROJECT_2", CeActivityDto.Status.FAILED);
insertActivity("T3", "PROJECT_1", CeActivityDto.Status.FAILED);
@@ -111,8 +111,8 @@ public class ComponentActionTest {
@Test
public void canceled_tasks_must_not_be_picked_as_current_analysis() {
- dbTester.components().insertComponent(newProjectDto(dbTester.getDefaultOrganization(), "PROJECT_1"));
- userSession.addComponentUuidPermission(UserRole.USER, "PROJECT_1", "PROJECT_1");
+ ComponentDto project = dbTester.components().insertComponent(newProjectDto(dbTester.getDefaultOrganization(), "PROJECT_1"));
+ userSession.addProjectPermission(UserRole.USER, project);
insertActivity("T1", "PROJECT_1", CeActivityDto.Status.SUCCESS);
insertActivity("T2", "PROJECT_2", CeActivityDto.Status.FAILED);
insertActivity("T3", "PROJECT_1", CeActivityDto.Status.SUCCESS);
@@ -130,8 +130,6 @@ public class ComponentActionTest {
@Test
public void fail_with_404_when_component_does_not_exist() throws Exception {
- userSession.addComponentUuidPermission(UserRole.USER, "PROJECT_1", "PROJECT_1");
-
expectedException.expect(NotFoundException.class);
ws.newRequest()
.setParam("componentId", "UNKNOWN")
@@ -161,7 +159,7 @@ public class ComponentActionTest {
}
private void logInWithBrowsePermission(ComponentDto project) {
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
}
private CeQueueDto insertQueue(String taskUuid, String componentUuid, CeQueueDto.Status status) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java
index 99aa93b072a..1380ec2eb12 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/ce/ws/TaskActionTest.java
@@ -218,7 +218,7 @@ public class TaskActionTest {
@Test
public void get_project_queue_task_with_scan_permission_on_project() {
- userSession.logIn().addProjectUuidPermissions(GlobalPermissions.SCAN_EXECUTION, project.uuid());
+ userSession.logIn().addProjectPermission(GlobalPermissions.SCAN_EXECUTION, project);
CeQueueDto task = createAndPersistQueueTask(project);
call(task.getUuid());
@@ -262,7 +262,7 @@ public class TaskActionTest {
@Test
public void get_project_archived_task_with_scan_permission_on_project() {
- userSession.logIn().addProjectUuidPermissions(GlobalPermissions.SCAN_EXECUTION, project.uuid());
+ userSession.logIn().addProjectPermission(GlobalPermissions.SCAN_EXECUTION, project);
CeActivityDto task = createAndPersistArchivedTask(project);
call(task.getUuid());
diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ComponentServiceUpdateKeyTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ComponentServiceUpdateKeyTest.java
index 204698c958b..1fc5f7f6993 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/component/ComponentServiceUpdateKeyTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/component/ComponentServiceUpdateKeyTest.java
@@ -123,7 +123,7 @@ public class ComponentServiceUpdateKeyTest {
expectedException.expect(ForbiddenException.class);
ComponentDto project = insertSampleRootProject();
- userSession.logIn("john").addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn("john").addProjectPermission(UserRole.USER, project);
underTest.updateKey(dbSession, project, "sample2:root");
}
@@ -215,6 +215,6 @@ public class ComponentServiceUpdateKeyTest {
}
private void logInAsProjectAdministrator(ComponentDto provisionedProject) {
- userSession.logIn("john").addProjectUuidPermissions(UserRole.ADMIN, provisionedProject.uuid());
+ userSession.logIn("john").addProjectPermission(UserRole.ADMIN, provisionedProject);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ws/AppActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ws/AppActionTest.java
index 347565c86da..0de565d501f 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/component/ws/AppActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/component/ws/AppActionTest.java
@@ -80,17 +80,17 @@ public class AppActionTest {
@Test
public void file_without_measures() throws Exception {
- insertComponentsAndAnalysis();
+ ComponentDto[] components = insertComponentsAndAnalysis();
dbTester.commit();
- userSessionRule.logIn("john").addComponentUuidPermission(UserRole.USER, PROJECT_UUID, FILE_UUID);
+ userSessionRule.logIn("john").addProjectPermission(UserRole.USER, components);
TestRequest request = wsTester.newRequest().setParam("uuid", FILE_UUID);
jsonAssert(request, "app.json");
}
@Test
public void file_with_measures() throws Exception {
- insertComponentsAndAnalysis();
+ ComponentDto[] components = insertComponentsAndAnalysis();
insertFileMeasure(metricsByKey.get(LINES_KEY).getId(), 200d, null);
insertFileMeasure(metricsByKey.get(DUPLICATED_LINES_DENSITY_KEY).getId(), 7.4, null);
insertFileMeasure(metricsByKey.get(SQALE_RATING_KEY).getId(), null, "C");
@@ -101,18 +101,19 @@ public class AppActionTest {
userSessionRule
.logIn("john")
- .addComponentUuidPermission(UserRole.USER, PROJECT_UUID, FILE_UUID);
+ .addProjectPermission(UserRole.USER, components);
TestRequest request = wsTester.newRequest().setParam("uuid", FILE_UUID);
jsonAssert(request, "app_with_measures.json");
}
@Test
public void file_with_coverage() throws Exception {
- insertComponentsAndAnalysis();
+ ComponentDto[] components = insertComponentsAndAnalysis();
insertFileMeasure(metricsByKey.get(COVERAGE_KEY).getId(), 95.4, null);
dbTester.commit();
- userSessionRule.logIn("john").addComponentUuidPermission(UserRole.USER, PROJECT_UUID, FILE_UUID);
+ userSessionRule.logIn("john")
+ .addProjectPermission(UserRole.USER, components);
TestRequest request = wsTester.newRequest().setParam("uuid", FILE_UUID);
jsonAssert(request, "app_with_ut_measure.json");
}
@@ -137,7 +138,7 @@ public class AppActionTest {
dbTester.commit();
}
- private void insertComponentsAndAnalysis() {
+ private ComponentDto[] insertComponentsAndAnalysis() {
ComponentDto project = ComponentTesting.newProjectDto(dbTester.getDefaultOrganization(), PROJECT_UUID)
.setLongName("SonarQube")
.setKey(PROJECT_KEY);
@@ -152,6 +153,7 @@ public class AppActionTest {
dbTester.getDbClient().componentDao().insert(dbTester.getSession(), project, module, file);
SnapshotDto analysis = SnapshotTesting.newAnalysis(project).setUuid(ANALYSIS_UUID);
dbTester.getDbClient().snapshotDao().insert(dbTester.getSession(), analysis);
+ return new ComponentDto[] {project, module, file};
}
private void insertFileMeasure(int metricId, @Nullable Double value, @Nullable String data) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ws/ShowActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ws/ShowActionTest.java
index c431c791837..55861bb473f 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/component/ws/ShowActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/component/ws/ShowActionTest.java
@@ -93,8 +93,9 @@ public class ShowActionTest {
@Test
public void show_with_browse_permission() {
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, "project-uuid");
- componentDb.insertProjectAndSnapshot(newProjectDto(db.organizations().insert(), "project-uuid"));
+ ComponentDto project = newProjectDto(db.organizations().insert(), "project-uuid");
+ componentDb.insertProjectAndSnapshot(project);
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
ShowWsResponse response = newRequest("project-uuid", null);
@@ -118,7 +119,7 @@ public class ShowActionTest {
ComponentDto module = componentDb.insertComponent(newModuleDto(project));
ComponentDto directory = componentDb.insertComponent(newDirectory(module, "dir"));
ComponentDto file = componentDb.insertComponent(newFileDto(directory));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
ShowWsResponse response = newRequest(null, file.key());
@@ -130,7 +131,7 @@ public class ShowActionTest {
public void show_without_ancestors_when_project() throws Exception {
ComponentDto project = componentDb.insertProject();
componentDb.insertComponent(newModuleDto(project));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
ShowWsResponse response = newRequest(null, project.key());
@@ -144,7 +145,7 @@ public class ShowActionTest {
componentDb.insertSnapshot(newAnalysis(project).setCreatedAt(1_000_000_000L).setLast(false));
componentDb.insertSnapshot(newAnalysis(project).setCreatedAt(2_000_000_000L).setLast(false));
componentDb.insertSnapshot(newAnalysis(project).setCreatedAt(3_000_000_000L).setLast(true));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
ShowWsResponse response = newRequest(null, project.key());
@@ -158,7 +159,7 @@ public class ShowActionTest {
ComponentDto module = componentDb.insertComponent(newModuleDto(project));
ComponentDto directory = componentDb.insertComponent(newDirectory(module, "dir"));
ComponentDto file = componentDb.insertComponent(newFileDto(directory));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
ShowWsResponse response = newRequest(null, file.key());
diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ws/TreeActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ws/TreeActionTest.java
index 1518d9ed220..f47c7508ca4 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/component/ws/TreeActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/component/ws/TreeActionTest.java
@@ -300,9 +300,9 @@ public class TreeActionTest {
@Test
public void fail_when_not_enough_privileges() {
+ ComponentDto project = componentDb.insertComponent(newProjectDto(db.organizations().insert(), "project-uuid"));
userSession.logIn()
- .addProjectUuidPermissions(UserRole.CODEVIEWER, "project-uuid");
- componentDb.insertComponent(newProjectDto(db.organizations().insert(), "project-uuid"));
+ .addProjectPermission(UserRole.CODEVIEWER, project);
db.commit();
expectedException.expect(ForbiddenException.class);
@@ -424,6 +424,6 @@ public class TreeActionTest {
}
private void logInWithBrowsePermission(ComponentDto project) {
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/queue/ReportSubmitterTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/queue/ReportSubmitterTest.java
index 8f7a1c80ec5..89b05061786 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/computation/queue/ReportSubmitterTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/computation/queue/ReportSubmitterTest.java
@@ -36,7 +36,9 @@ import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import org.sonar.db.ce.CeTaskTypes;
import org.sonar.db.component.ComponentDto;
+import org.sonar.db.component.ComponentTesting;
import org.sonar.db.organization.OrganizationDto;
+import org.sonar.db.permission.OrganizationPermission;
import org.sonar.server.component.ComponentUpdater;
import org.sonar.server.component.NewComponent;
import org.sonar.server.exceptions.ForbiddenException;
@@ -110,7 +112,7 @@ public class ReportSubmitterTest {
@Test
public void submit_a_report_on_existing_project() {
ComponentDto project = db.components().insertProject(db.getDefaultOrganization());
- userSession.logIn().addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSession.logIn().addProjectPermission(SCAN_EXECUTION, project);
mockSuccessfulPrepareSubmitCall();
@@ -137,7 +139,7 @@ public class ReportSubmitterTest {
public void provision_project_if_does_not_exist() throws Exception {
OrganizationDto organization = db.organizations().insert();
userSession
- .addProjectUuidPermissions(SCAN_EXECUTION, PROJECT_UUID)
+ .addPermission(OrganizationPermission.SCAN, organization.getUuid())
.addPermission(PROVISION_PROJECTS, organization);
mockSuccessfulPrepareSubmitCall();
@@ -168,7 +170,7 @@ public class ReportSubmitterTest {
@Test
public void no_favorite_when_no_project_creator_permission_on_permission_template() {
userSession
- .addProjectUuidPermissions(SCAN_EXECUTION, PROJECT_UUID)
+ .addPermission(OrganizationPermission.SCAN, db.getDefaultOrganization().getUuid())
.addPermission(PROVISION_PROJECTS, db.getDefaultOrganization());
mockSuccessfulPrepareSubmitCall();
@@ -187,7 +189,7 @@ public class ReportSubmitterTest {
@Test
public void submit_a_report_on_new_project_with_scan_permission_on_organization() {
userSession
- .addProjectUuidPermissions(SCAN_EXECUTION, PROJECT_UUID)
+ .addPermission(OrganizationPermission.SCAN, db.getDefaultOrganization().getUuid())
.addPermission(PROVISION_PROJECTS, db.getDefaultOrganization());
mockSuccessfulPrepareSubmitCall();
@@ -218,7 +220,7 @@ public class ReportSubmitterTest {
@Test
public void submit_a_report_on_existing_project_with_project_scan_permission() {
ComponentDto project = db.components().insertProject(db.getDefaultOrganization());
- userSession.addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ userSession.addProjectPermission(SCAN_EXECUTION, project);
mockSuccessfulPrepareSubmitCall();
@@ -236,7 +238,7 @@ public class ReportSubmitterTest {
@Test
public void fail_with_forbidden_exception_on_new_project_when_only_project_scan_permission() {
- userSession.addProjectUuidPermissions(SCAN_EXECUTION, PROJECT_UUID);
+ userSession.addProjectPermission(SCAN_EXECUTION, ComponentTesting.newProjectDto(db.getDefaultOrganization(), PROJECT_UUID));
mockSuccessfulPrepareSubmitCall();
when(componentUpdater.create(any(DbSession.class), any(NewComponent.class), eq(null))).thenReturn(new ComponentDto().setUuid(PROJECT_UUID).setKey(PROJECT_KEY));
@@ -251,7 +253,7 @@ public class ReportSubmitterTest {
@Test
public void project_branch_must_not_benefit_from_the_scan_permission_on_main_project() {
ComponentDto mainProject = db.components().insertProject();
- userSession.addProjectUuidPermissions(GlobalPermissions.SCAN_EXECUTION, mainProject.uuid());
+ userSession.addProjectPermission(GlobalPermissions.SCAN_EXECUTION, mainProject);
// user does not have the "scan" permission on the branch, so it can't scan it
String branchName = "branchFoo";
diff --git a/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/ShowActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/ShowActionTest.java
index 9d7c0c78c5d..e6cacf51b6e 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/ShowActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/ShowActionTest.java
@@ -83,7 +83,7 @@ public class ShowActionTest {
ComponentDto file = db.components().insertComponent(newFileDto(project).setKey("foo.js"));
db.components().insertSnapshot(newAnalysis(project));
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project);
WsTester.Result result = newBaseRequest().setParam("key", file.key()).execute();
@@ -127,7 +127,7 @@ public class ShowActionTest {
db.getDbClient().measureDao().insert(db.getSession(), newMeasureDto(dataMetric, file, snapshot).setData(xml));
db.commit();
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project);
WsTester.TestRequest request = requestFactory.apply(file);
WsTester.Result result = request.execute();
diff --git a/server/sonar-server/src/test/java/org/sonar/server/favorite/ws/AddActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/favorite/ws/AddActionTest.java
index 4ce86209eef..84130b7b277 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/favorite/ws/AddActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/favorite/ws/AddActionTest.java
@@ -88,7 +88,7 @@ public class AddActionTest {
public void add_a_file() {
ComponentDto project = insertProjectAndPermissions();
ComponentDto file = db.components().insertComponent(newFileDto(project));
- userSession.addComponentUuidPermission(UserRole.USER, PROJECT_UUID, file.uuid());
+ userSession.addProjectPermission(UserRole.USER, project, file);
call(file.key());
@@ -105,9 +105,9 @@ public class AddActionTest {
@Test
public void fail_when_no_browse_permission_on_the_project() {
- insertProject();
+ ComponentDto project = insertProject();
userSession.logIn();
- userSession.addProjectUuidPermissions(UserRole.ADMIN, PROJECT_UUID);
+ userSession.addProjectPermission(UserRole.ADMIN, project);
expectedException.expect(ForbiddenException.class);
@@ -146,12 +146,13 @@ public class AddActionTest {
}
private ComponentDto insertProjectAndPermissions() {
+ ComponentDto project = insertProject();
userSession
.logIn()
.setUserId(USER_ID)
- .addProjectUuidPermissions(UserRole.USER, PROJECT_UUID);
+ .addProjectPermission(UserRole.USER, project);
- return insertProject();
+ return project;
}
private TestResponse call(@Nullable String componentKey) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ActionFinderTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ActionFinderTest.java
index b5941fd91f9..2d3ea708c08 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ActionFinderTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ActionFinderTest.java
@@ -23,6 +23,7 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.sonar.db.component.ComponentDto;
+import org.sonar.db.component.ComponentTesting;
import org.sonar.db.issue.IssueDto;
import org.sonar.db.organization.OrganizationTesting;
import org.sonar.server.tester.UserSessionRule;
@@ -60,7 +61,7 @@ public class ActionFinderTest {
@Test
public void return_provided_actions_with_set_severity_and_set_type_when_issue_admin() {
- userSession.addProjectUuidPermissions(ISSUE_ADMIN, PROJECT_UUID);
+ userSession.addProjectPermission(ISSUE_ADMIN, ComponentTesting.newProjectDto(OrganizationTesting.newOrganizationDto(), PROJECT_UUID));
assertThat(underTest.listAvailableActions(issue)).containsOnly("comment", "assign", "set_tags", "set_type", "assign_to_me", "set_severity");
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueFinderTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueFinderTest.java
index 464d94b685a..bc3f00546e3 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueFinderTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueFinderTest.java
@@ -61,7 +61,8 @@ public class IssueFinderTest {
@Test
public void get_by_issue_key() throws Exception {
IssueDto issueDto = insertIssue();
- userSession.addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ String permission = USER;
+ addProjectPermission(issueDto, permission);
IssueDto result = underTest.getByKey(db.getSession(), issueDto.getKey());
@@ -72,7 +73,7 @@ public class IssueFinderTest {
@Test
public void fail_when_issue_key_does_not_exist() throws Exception {
IssueDto issueDto = insertIssue();
- userSession.addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ addProjectPermission(issueDto, USER);
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Issue with key 'UNKNOWN' does not exist");
@@ -82,7 +83,7 @@ public class IssueFinderTest {
@Test
public void fail_when_not_enough_permission() throws Exception {
IssueDto issueDto = insertIssue();
- userSession.addProjectUuidPermissions(CODEVIEWER, issueDto.getProjectUuid());
+ addProjectPermission(issueDto, CODEVIEWER);
expectedException.expect(ForbiddenException.class);
underTest.getByKey(db.getSession(), issueDto.getKey());
@@ -94,4 +95,8 @@ public class IssueFinderTest {
ComponentDto file = componentDbTester.insertComponent(newFileDto(project));
return issueDbTester.insertIssue(newDto(rule, file, project));
}
+
+ private void addProjectPermission(IssueDto issueDto, String permission) {
+ userSession.addProjectPermission(permission, db.getDbClient().componentDao().selectByUuid(db.getSession(), issueDto.getProjectUuid()).get());
+ }
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryFactoryTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryFactoryTest.java
index 294ab90c868..7f2c1285656 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryFactoryTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryFactoryTest.java
@@ -192,7 +192,7 @@ public class IssueQueryFactoryTest {
ComponentDto view = db.components().insertView();
SearchWsRequest request = new SearchWsRequest()
.setComponentRootUuids(asList(view.uuid()));
- userSession.addProjectUuidPermissions(UserRole.USER, view.uuid());
+ userSession.addProjectPermission(UserRole.USER, view);
IssueQuery query = underTest.create(request);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueServiceMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueServiceMediumTest.java
index b2f04caedd9..6a24e75d3b6 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueServiceMediumTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueServiceMediumTest.java
@@ -155,7 +155,7 @@ public class IssueServiceMediumTest {
ComponentDto project = ComponentTesting.newProjectDto(organization);
tester.get(ComponentDao.class).insert(session, project);
- userSessionRule.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSessionRule.logIn().addProjectPermission(UserRole.USER, project);
session.commit();
// project can be seen by group "anyone"
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/SetSeverityActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/SetSeverityActionTest.java
index 914ae6fffb1..15a80439331 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/SetSeverityActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/SetSeverityActionTest.java
@@ -67,8 +67,9 @@ public class SetSeverityActionTest {
@Test
public void set_severity() {
- DefaultIssue issue = newIssue().setSeverity(MAJOR).toDefaultIssue();
- setUserWithBrowseAndAdministerIssuePermission(issue.projectUuid());
+ IssueDto issueDto = newIssue().setSeverity(MAJOR);
+ DefaultIssue issue = issueDto.toDefaultIssue();
+ setUserWithBrowseAndAdministerIssuePermission(issueDto);
BulkChangeAction.ActionContext context = new BulkChangeAction.ActionContext(issue, IssueChangeContext.createUser(NOW, userSession.getLogin()), null);
action.execute(ImmutableMap.of("severity", MINOR), context);
@@ -93,8 +94,9 @@ public class SetSeverityActionTest {
@Test
public void support_only_unresolved_issues() {
- DefaultIssue issue = newIssue().setSeverity(MAJOR).toDefaultIssue();
- setUserWithBrowseAndAdministerIssuePermission(issue.projectUuid());
+ IssueDto issueDto = newIssue().setSeverity(MAJOR);
+ DefaultIssue issue = issueDto.toDefaultIssue();
+ setUserWithBrowseAndAdministerIssuePermission(issueDto);
assertThat(action.supports(issue.setResolution(null))).isTrue();
assertThat(action.supports(issue.setResolution(Issue.RESOLUTION_FIXED))).isFalse();
@@ -102,18 +104,20 @@ public class SetSeverityActionTest {
@Test
public void support_only_issues_with_issue_admin_permission() {
- DefaultIssue authorizedIssue = newIssue().setSeverity(MAJOR).toDefaultIssue();
- setUserWithBrowseAndAdministerIssuePermission(authorizedIssue.projectUuid());
- DefaultIssue unauthorizedIssue = newIssue().setSeverity(MAJOR).toDefaultIssue();
+ IssueDto authorizedIssue = newIssue().setSeverity(MAJOR);
+ setUserWithBrowseAndAdministerIssuePermission(authorizedIssue);
+ IssueDto unauthorizedIssue = newIssue().setSeverity(MAJOR);
- assertThat(action.supports(authorizedIssue.setResolution(null))).isTrue();
- assertThat(action.supports(unauthorizedIssue.setResolution(null))).isFalse();
+ assertThat(action.supports(authorizedIssue.toDefaultIssue().setResolution(null))).isTrue();
+ assertThat(action.supports(unauthorizedIssue.toDefaultIssue().setResolution(null))).isFalse();
}
- private void setUserWithBrowseAndAdministerIssuePermission(String projectUuid) {
+ private void setUserWithBrowseAndAdministerIssuePermission(IssueDto issue) {
+ ComponentDto project = db.getDbClient().componentDao().selectByUuid(db.getSession(), issue.getProjectUuid()).get();
+ ComponentDto component = db.getDbClient().componentDao().selectByUuid(db.getSession(), issue.getComponentUuid()).get();
userSession.logIn(USER_LOGIN)
- .addProjectUuidPermissions(ISSUE_ADMIN, projectUuid)
- .addProjectUuidPermissions(USER, projectUuid);
+ .addProjectPermission(ISSUE_ADMIN, project, component)
+ .addProjectPermission(USER, project, component);
}
private IssueDto newIssue() {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/SetTypeActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/SetTypeActionTest.java
index 4ff0e5d8f6b..f08d793deb8 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/SetTypeActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/SetTypeActionTest.java
@@ -66,8 +66,9 @@ public class SetTypeActionTest {
@Test
public void set_type() {
- DefaultIssue issue = newIssue().setType(BUG).toDefaultIssue();
- setUserWithBrowseAndAdministerIssuePermission(issue.projectUuid());
+ IssueDto issueDto = newIssue().setType(BUG);
+ DefaultIssue issue = issueDto.toDefaultIssue();
+ setUserWithBrowseAndAdministerIssuePermission(issueDto);
action.execute(ImmutableMap.of("type", VULNERABILITY.name()),
new BulkChangeAction.ActionContext(issue, IssueChangeContext.createUser(NOW, userSession.getLogin()), null));
@@ -99,8 +100,9 @@ public class SetTypeActionTest {
@Test
public void support_only_unresolved_issues() {
- DefaultIssue issue = newIssue().setType(BUG).toDefaultIssue();
- setUserWithBrowseAndAdministerIssuePermission(issue.projectUuid());
+ IssueDto issueDto = newIssue().setType(BUG);
+ DefaultIssue issue = issueDto.toDefaultIssue();
+ setUserWithBrowseAndAdministerIssuePermission(issueDto);
assertThat(action.supports(issue.setResolution(null))).isTrue();
assertThat(action.supports(issue.setResolution(Issue.RESOLUTION_FIXED))).isFalse();
@@ -108,18 +110,21 @@ public class SetTypeActionTest {
@Test
public void support_only_issues_with_issue_admin_permission() {
- DefaultIssue authorizedIssue = newIssue().setType(BUG).toDefaultIssue();
- setUserWithBrowseAndAdministerIssuePermission(authorizedIssue.projectUuid());
+ IssueDto authorizedIssueDto = newIssue().setType(BUG);
+ DefaultIssue authorizedIssue = authorizedIssueDto.toDefaultIssue();
+ setUserWithBrowseAndAdministerIssuePermission(authorizedIssueDto);
DefaultIssue unauthorizedIssue = newIssue().setType(BUG).toDefaultIssue();
assertThat(action.supports(authorizedIssue.setResolution(null))).isTrue();
assertThat(action.supports(unauthorizedIssue.setResolution(null))).isFalse();
}
- private void setUserWithBrowseAndAdministerIssuePermission(String projectUuid) {
+ private void setUserWithBrowseAndAdministerIssuePermission(IssueDto issueDto) {
+ ComponentDto project = db.getDbClient().componentDao().selectByUuid(db.getSession(), issueDto.getProjectUuid()).get();
+ ComponentDto component = db.getDbClient().componentDao().selectByUuid(db.getSession(), issueDto.getComponentUuid()).get();
userSession.logIn(USER_LOGIN)
- .addProjectUuidPermissions(ISSUE_ADMIN, projectUuid)
- .addProjectUuidPermissions(USER, projectUuid);
+ .addProjectPermission(ISSUE_ADMIN, project, component)
+ .addProjectPermission(USER, project, component);
}
private IssueDto newIssue() {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionActionTest.java
index 598033a1063..d73a3e066ee 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionActionTest.java
@@ -73,7 +73,7 @@ public class TransitionActionTest {
@Test
public void execute() {
- userSession.logIn("john").addProjectUuidPermissions(ISSUE_ADMIN, issue.projectUuid());
+ loginAndAddProjectPermission("john", ISSUE_ADMIN);
issue.setStatus(Issue.STATUS_RESOLVED);
issue.setResolution(Issue.RESOLUTION_FIXED);
@@ -85,7 +85,7 @@ public class TransitionActionTest {
@Test
public void does_not_execute_if_transition_is_not_available() {
- userSession.logIn("john").addProjectUuidPermissions(ISSUE_ADMIN, issue.projectUuid());
+ loginAndAddProjectPermission("john", ISSUE_ADMIN);
issue.setStatus(Issue.STATUS_CLOSED);
action.execute(ImmutableMap.of("transition", "reopen"), context);
@@ -119,4 +119,8 @@ public class TransitionActionTest {
return newDto(rule, file, project);
}
+ private void loginAndAddProjectPermission(String login, String permission) {
+ userSession.logIn(login).addProjectPermission(permission, ComponentTesting.newProjectDto(OrganizationTesting.newOrganizationDto(), issue.projectUuid()));
+ }
+
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionServiceTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionServiceTest.java
index d01e22e84b9..68690ec21a9 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionServiceTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/TransitionServiceTest.java
@@ -62,7 +62,7 @@ public class TransitionServiceTest {
@Test
public void list_transitions() throws Exception {
IssueDto issue = newIssue().setStatus(STATUS_OPEN).setResolution(null);
- userSession.logIn("john").addProjectUuidPermissions(ISSUE_ADMIN, issue.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(ISSUE_ADMIN, ComponentTesting.newProjectDto(OrganizationTesting.newOrganizationDto(), issue.getProjectUuid()));
List<Transition> result = underTest.listTransitions(issue.toDefaultIssue());
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AddCommentActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AddCommentActionTest.java
index 167bf3dc0f2..45c5f5bd814 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AddCommentActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AddCommentActionTest.java
@@ -105,7 +105,7 @@ public class AddCommentActionTest {
@Test
public void add_comment() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ loginWithBrowsePermission(issueDto, USER);
call(issueDto.getKey(), "please fix it");
@@ -151,7 +151,7 @@ public class AddCommentActionTest {
@Test
public void fail_when_empty_comment_text() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ loginWithBrowsePermission(issueDto, USER);
expectedException.expect(IllegalArgumentException.class);
call(issueDto.getKey(), "");
@@ -166,7 +166,7 @@ public class AddCommentActionTest {
@Test
public void fail_when_not_enough_permission() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
- userSession.logIn("john").addProjectUuidPermissions(CODEVIEWER, issueDto.getProjectUuid());
+ loginWithBrowsePermission(issueDto, CODEVIEWER);
expectedException.expect(ForbiddenException.class);
call(issueDto.getKey(), "please fix it");
@@ -189,4 +189,10 @@ public class AddCommentActionTest {
return request.execute();
}
+ private void loginWithBrowsePermission(IssueDto issueDto, String permission) {
+ userSession.logIn("john").addProjectPermission(permission,
+ dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getProjectUuid()).get(),
+ dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getComponentUuid()).get());
+ }
+
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java
index cac29c2121d..88fac14b25f 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/AssignActionTest.java
@@ -69,13 +69,10 @@ public class AssignActionTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
-
@Rule
public UserSessionRule userSession = UserSessionRule.standalone();
-
@Rule
public EsTester es = new EsTester(new IssueIndexDefinition(new MapSettings()));
-
@Rule
public DbTester db = DbTester.create(system2);
@@ -211,7 +208,7 @@ public class AssignActionTest {
@Test
public void fail_when_missing_browse_permission() throws Exception {
IssueDto issue = newIssue();
- userSession.logIn(CURRENT_USER_LOGIN).addProjectUuidPermissions(CODEVIEWER, issue.getProjectUuid());
+ setUserWithPermission(issue, CODEVIEWER);
expectedException.expect(ForbiddenException.class);
@@ -246,11 +243,12 @@ public class AssignActionTest {
}
private IssueDto newIssue() {
- return db.issues().insertIssue(
+ IssueDto issue = db.issues().insertIssue(
issueDto -> issueDto
.setAssignee(PREVIOUS_ASSIGNEE)
.setCreatedAt(PAST).setIssueCreationTime(PAST)
.setUpdatedAt(PAST).setIssueUpdateTime(PAST));
+ return issue;
}
private IssueDto newIssueWithBrowsePermission() {
@@ -260,8 +258,15 @@ public class AssignActionTest {
}
private void setUserWithBrowsePermission(IssueDto issue) {
+ setUserWithPermission(issue, USER);
+ }
+
+ private void setUserWithPermission(IssueDto issue, String permission) {
insertUser(CURRENT_USER_LOGIN);
- userSession.logIn(CURRENT_USER_LOGIN).addProjectUuidPermissions(USER, issue.getProjectUuid());
+ userSession.logIn(CURRENT_USER_LOGIN)
+ .addProjectPermission(permission,
+ db.getDbClient().componentDao().selectByUuid(db.getSession(), issue.getProjectUuid()).get(),
+ db.getDbClient().componentDao().selectByUuid(db.getSession(), issue.getComponentUuid()).get());
}
private void checkIssueAssignee(String issueKey, @Nullable String expectedAssignee) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/BulkChangeActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/BulkChangeActionTest.java
index 009b960bee8..b7d328f4674 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/BulkChangeActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/BulkChangeActionTest.java
@@ -487,7 +487,7 @@ public class BulkChangeActionTest {
private void addUserProjectPermissions(ComponentDto project, String... permissions) {
for (String permission : permissions) {
db.users().insertProjectPermissionOnUser(user, permission, project);
- userSession.addProjectUuidPermissions(permission, project.uuid());
+ userSession.addProjectPermission(permission, project);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/ChangelogActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/ChangelogActionTest.java
index 792059432fb..9e7c07db383 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/ChangelogActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/ChangelogActionTest.java
@@ -20,6 +20,7 @@
package org.sonar.server.issue.ws;
import javax.annotation.Nullable;
+import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -63,13 +64,21 @@ public class ChangelogActionTest {
@Rule
public UserSessionRule userSession = UserSessionRule.standalone();
+ private ComponentDto project;
+ private ComponentDto file;
private WsActionTester tester = new WsActionTester(new ChangelogAction(db.getDbClient(), new IssueFinder(db.getDbClient(), userSession), new AvatarResolverImpl()));
+ @Before
+ public void setUp() throws Exception {
+ project = db.components().insertProject();
+ file = db.components().insertComponent(newFileDto(project));
+ }
+
@Test
public void return_changelog() throws Exception {
UserDto user = insertUser();
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserLogin(user.getLogin()).setDiff("severity", "MAJOR", "BLOCKER"));
ChangelogWsResponse result = call(issueDto.getKey());
@@ -89,7 +98,7 @@ public class ChangelogActionTest {
ComponentDto file1 = db.components().insertComponent(newFileDto(project));
ComponentDto file2 = db.components().insertComponent(newFileDto(project));
IssueDto issueDto = db.issues().insertIssue(newDto(rule, file2, project));
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file1, file2);
db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setDiff("file", file1.uuid(), file2.uuid()));
ChangelogWsResponse result = call(issueDto.getKey());
@@ -104,7 +113,7 @@ public class ChangelogActionTest {
@Test
public void changelog_of_file_move_is_empty_when_files_does_not_exists() throws Exception {
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setDiff("file", "UNKNOWN_1", "UNKNOWN_2"));
ChangelogWsResponse result = call(issueDto.getKey());
@@ -118,7 +127,7 @@ public class ChangelogActionTest {
public void return_changelog_on_user_without_email() throws Exception {
UserDto user = db.users().insertUser(UserTesting.newUserDto("john", "John", null));
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserLogin(user.getLogin()).setDiff("severity", "MAJOR", "BLOCKER"));
ChangelogWsResponse result = call(issueDto.getKey());
@@ -132,7 +141,7 @@ public class ChangelogActionTest {
@Test
public void return_changelog_not_having_user() throws Exception {
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserLogin(null).setDiff("severity", "MAJOR", "BLOCKER"));
ChangelogWsResponse result = call(issueDto.getKey());
@@ -147,7 +156,7 @@ public class ChangelogActionTest {
@Test
public void return_changelog_on_none_existing_user() throws Exception {
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserLogin("UNKNOWN").setDiff("severity", "MAJOR", "BLOCKER"));
ChangelogWsResponse result = call(issueDto.getKey());
@@ -163,7 +172,7 @@ public class ChangelogActionTest {
public void return_multiple_diffs() throws Exception {
UserDto user = insertUser();
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserLogin(user.getLogin()).setDiff("severity", "MAJOR", "BLOCKER").setDiff("status", "RESOLVED", "CLOSED"));
ChangelogWsResponse result = call(issueDto.getKey());
@@ -177,7 +186,7 @@ public class ChangelogActionTest {
public void return_changelog_when_no_old_value() throws Exception {
UserDto user = insertUser();
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserLogin(user.getLogin()).setDiff("severity", null, "BLOCKER"));
ChangelogWsResponse result = call(issueDto.getKey());
@@ -190,7 +199,7 @@ public class ChangelogActionTest {
public void return_changelog_when_no_new_value() throws Exception {
UserDto user = insertUser();
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserLogin(user.getLogin()).setDiff("severity", "MAJOR", null));
ChangelogWsResponse result = call(issueDto.getKey());
@@ -203,7 +212,7 @@ public class ChangelogActionTest {
public void return_many_changelog() throws Exception {
UserDto user = insertUser();
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
db.issues().insertFieldDiffs(issueDto,
new FieldDiffs().setUserLogin(user.getLogin()).setDiff("severity", "MAJOR", "BLOCKER"),
new FieldDiffs().setDiff("status", "RESOLVED", "CLOSED"));
@@ -217,7 +226,7 @@ public class ChangelogActionTest {
public void replace_technical_debt_key_by_effort() throws Exception {
UserDto user = insertUser();
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
db.issues().insertFieldDiffs(issueDto, new FieldDiffs().setUserLogin(user.getLogin()).setDiff("technicalDebt", "10", "20"));
ChangelogWsResponse result = call(issueDto.getKey());
@@ -229,7 +238,7 @@ public class ChangelogActionTest {
@Test
public void return_empty_changelog_when_no_changes_on_issue() {
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
ChangelogWsResponse result = call(issueDto.getKey());
@@ -239,7 +248,7 @@ public class ChangelogActionTest {
@Test
public void fail_when_not_enough_permission() {
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(CODEVIEWER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(CODEVIEWER, project, file);
expectedException.expect(ForbiddenException.class);
call(issueDto.getKey());
@@ -249,7 +258,7 @@ public class ChangelogActionTest {
public void test_example() throws Exception {
UserDto user = db.users().insertUser(newUserDto("john.smith", "John Smith", "john@smith.com"));
IssueDto issueDto = db.issues().insertIssue(newIssue());
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
db.issues().insertFieldDiffs(issueDto, new FieldDiffs()
.setUserLogin(user.getLogin())
.setDiff("severity", "MAJOR", "BLOCKER")
@@ -278,8 +287,6 @@ public class ChangelogActionTest {
private IssueDto newIssue() {
RuleDto rule = db.rules().insertRule(newRuleDto());
- ComponentDto project = db.components().insertProject();
- ComponentDto file = db.components().insertComponent(newFileDto(project));
return newDto(rule, file, project);
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/DeleteCommentActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/DeleteCommentActionTest.java
index 24a8d3798fd..d3d3770c096 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/DeleteCommentActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/DeleteCommentActionTest.java
@@ -73,7 +73,7 @@ public class DeleteCommentActionTest {
public void delete_comment() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
IssueChangeDto commentDto = issueDbTester.insertComment(issueDto, "john", "please fix it");
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ loginAndAddProjectPermission("john", issueDto, USER);
call(commentDto.getKey());
@@ -85,7 +85,7 @@ public class DeleteCommentActionTest {
public void delete_comment_using_deprecated_key_parameter() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
IssueChangeDto commentDto = issueDbTester.insertComment(issueDto, "john", "please fix it");
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ loginAndAddProjectPermission("john", issueDto, USER);
tester.newRequest().setParam("key", commentDto.getKey()).setParam("text", "please have a look").execute();
@@ -97,7 +97,7 @@ public class DeleteCommentActionTest {
public void fail_when_comment_does_not_belong_to_current_user() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
IssueChangeDto commentDto = issueDbTester.insertComment(issueDto, "john", "please fix it");
- userSession.logIn("another").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ loginAndAddProjectPermission("another", issueDto, USER);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("You can only delete your own comments");
@@ -108,7 +108,7 @@ public class DeleteCommentActionTest {
public void fail_when_comment_has_not_user() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
IssueChangeDto commentDto = issueDbTester.insertComment(issueDto, null, "please fix it");
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ loginAndAddProjectPermission("john", issueDto, USER);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("You can only delete your own comments");
@@ -141,7 +141,7 @@ public class DeleteCommentActionTest {
public void fail_when_not_enough_permission() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
IssueChangeDto commentDto = issueDbTester.insertComment(issueDto, "john", "please fix it");
- userSession.logIn("john").addProjectUuidPermissions(CODEVIEWER, issueDto.getProjectUuid());
+ loginAndAddProjectPermission("john", issueDto, CODEVIEWER);
expectedException.expect(ForbiddenException.class);
call(commentDto.getKey());
@@ -163,4 +163,8 @@ public class DeleteCommentActionTest {
return request.execute();
}
+ private void loginAndAddProjectPermission(String login, IssueDto issueDto, String permission) {
+ userSession.logIn(login).addProjectPermission(permission, dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getProjectUuid()).get());
+ }
+
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/DoTransitionActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/DoTransitionActionTest.java
index 682c9fe6101..68c91866b99 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/DoTransitionActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/DoTransitionActionTest.java
@@ -103,19 +103,23 @@ public class DoTransitionActionTest {
private IssueIndexer issueIndexer = new IssueIndexer(esTester.client(), new IssueIteratorFactory(dbClient));
private IssueUpdater issueUpdater = new IssueUpdater(dbClient,
new ServerIssueStorage(system2, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), dbClient, issueIndexer), mock(NotificationManager.class));
+ private ComponentDto project;
+ private ComponentDto file;
private WsAction underTest = new DoTransitionAction(dbClient, userSession, new IssueFinder(dbClient, userSession), issueUpdater, transitionService, responseWriter);
private WsActionTester tester = new WsActionTester(underTest);
@Before
public void setUp() throws Exception {
+ project = componentDbTester.insertProject();
+ file = componentDbTester.insertComponent(newFileDto(project));
workflow.start();
}
@Test
public void do_transition() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue(newIssue().setStatus(STATUS_OPEN).setResolution(null));
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
call(issueDto.getKey(), "confirm");
@@ -143,7 +147,7 @@ public class DoTransitionActionTest {
@Test
public void fail_if_no_transition_param() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue(newIssue().setStatus(STATUS_OPEN).setResolution(null));
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
expectedException.expect(IllegalArgumentException.class);
call(issueDto.getKey(), null);
@@ -152,7 +156,7 @@ public class DoTransitionActionTest {
@Test
public void fail_if_not_enough_permission_to_access_issue() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue(newIssue().setStatus(STATUS_OPEN).setResolution(null));
- userSession.logIn("john").addProjectUuidPermissions(CODEVIEWER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(CODEVIEWER, project, file);
expectedException.expect(ForbiddenException.class);
call(issueDto.getKey(), "confirm");
@@ -161,7 +165,7 @@ public class DoTransitionActionTest {
@Test
public void fail_if_not_enough_permission_to_apply_transition() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue(newIssue().setStatus(STATUS_OPEN).setResolution(null));
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, project, file);
// False-positive transition is requiring issue admin permission
expectedException.expect(ForbiddenException.class);
@@ -187,8 +191,6 @@ public class DoTransitionActionTest {
private IssueDto newIssue() {
RuleDto rule = ruleDbTester.insertRule(newRuleDto());
- ComponentDto project = componentDbTester.insertProject();
- ComponentDto file = componentDbTester.insertComponent(newFileDto(project));
return newDto(rule, file, project);
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/EditCommentActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/EditCommentActionTest.java
index 2c0ce12cead..dc524f6bc74 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/EditCommentActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/EditCommentActionTest.java
@@ -85,7 +85,7 @@ public class EditCommentActionTest {
public void edit_comment() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
IssueChangeDto commentDto = issueDbTester.insertComment(issueDto, "john", "please fix it");
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ loginWithBrowsePermission("john", USER, issueDto);
call(commentDto.getKey(), "please have a look");
@@ -99,7 +99,7 @@ public class EditCommentActionTest {
public void edit_comment_using_deprecated_key_parameter() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
IssueChangeDto commentDto = issueDbTester.insertComment(issueDto, "john", "please fix it");
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ loginWithBrowsePermission("john", USER, issueDto);
tester.newRequest().setParam("key", commentDto.getKey()).setParam("text", "please have a look").execute();
@@ -113,7 +113,7 @@ public class EditCommentActionTest {
public void fail_when_comment_does_not_belong_to_current_user() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
IssueChangeDto commentDto = issueDbTester.insertComment(issueDto, "john", "please fix it");
- userSession.logIn("another").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ loginWithBrowsePermission("another", USER, issueDto);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("You can only edit your own comments");
@@ -124,7 +124,7 @@ public class EditCommentActionTest {
public void fail_when_comment_has_not_user() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
IssueChangeDto commentDto = issueDbTester.insertComment(issueDto, null, "please fix it");
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ loginWithBrowsePermission("john", USER, issueDto);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("You can only edit your own comments");
@@ -159,7 +159,7 @@ public class EditCommentActionTest {
public void fail_when_empty_comment_text() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
IssueChangeDto commentDto = issueDbTester.insertComment(issueDto, "john", "please fix it");
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ loginWithBrowsePermission("john", USER, issueDto);
expectedException.expect(IllegalArgumentException.class);
call(commentDto.getKey(), "");
@@ -175,7 +175,7 @@ public class EditCommentActionTest {
public void fail_when_not_enough_permission() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
IssueChangeDto commentDto = issueDbTester.insertComment(issueDto, "john", "please fix it");
- userSession.logIn("john").addProjectUuidPermissions(CODEVIEWER, issueDto.getProjectUuid());
+ loginWithBrowsePermission("john", CODEVIEWER, issueDto);
expectedException.expect(ForbiddenException.class);
call(commentDto.getKey(), "please have a look");
@@ -197,4 +197,10 @@ public class EditCommentActionTest {
setNullable(commentText, comment -> request.setParam("text", comment));
return request.execute();
}
+
+ private void loginWithBrowsePermission(String login, String permission, IssueDto issueDto) {
+ userSession.logIn(login).addProjectPermission(permission,
+ dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getProjectUuid()).get(),
+ dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getComponentUuid()).get());
+ }
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionComponentsMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionComponentsMediumTest.java
index 43c46a306ec..28cd589d353 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionComponentsMediumTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionComponentsMediumTest.java
@@ -494,7 +494,7 @@ public class SearchActionComponentsMediumTest {
indexView(view.uuid(), newArrayList(project.uuid()));
setAnyoneProjectPermission(view, UserRole.USER);
- userSessionRule.logIn("john").addProjectUuidPermissions(UserRole.USER, view.uuid());
+ userSessionRule.logIn("john").addProjectPermission(UserRole.USER, view);
wsTester.newGetRequest(CONTROLLER_ISSUES, ACTION_SEARCH)
.setParam(IssuesWsParameters.PARAM_COMPONENT_UUIDS, view.uuid())
@@ -514,7 +514,7 @@ public class SearchActionComponentsMediumTest {
setAnyoneProjectPermission(view, UserRole.USER);
// User has wrong permission on the view, no issue will be returned
- userSessionRule.logIn("john").addProjectUuidPermissions(UserRole.CODEVIEWER, view.uuid());
+ userSessionRule.logIn("john").addProjectPermission(UserRole.CODEVIEWER, view);
wsTester.newGetRequest(CONTROLLER_ISSUES, ACTION_SEARCH)
.setParam(IssuesWsParameters.PARAM_COMPONENT_UUIDS, view.uuid())
@@ -535,7 +535,7 @@ public class SearchActionComponentsMediumTest {
indexView(subView.uuid(), newArrayList(project.uuid()));
setAnyoneProjectPermission(view, UserRole.USER);
- userSessionRule.logIn("john").addComponentUuidPermission(UserRole.USER, view.uuid(), subView.uuid());
+ userSessionRule.logIn("john").addProjectPermission(UserRole.USER, view, subView);
wsTester.newGetRequest(CONTROLLER_ISSUES, ACTION_SEARCH)
.setParam(IssuesWsParameters.PARAM_COMPONENT_UUIDS, subView.uuid())
@@ -557,7 +557,7 @@ public class SearchActionComponentsMediumTest {
setAnyoneProjectPermission(view, UserRole.USER);
// User has wrong permission on the view, no issue will be returned
- userSessionRule.logIn("john").addComponentUuidPermission(UserRole.CODEVIEWER, view.uuid(), subView.uuid());
+ userSessionRule.logIn("john").addProjectPermission(UserRole.CODEVIEWER, view, subView);
wsTester.newGetRequest(CONTROLLER_ISSUES, ACTION_SEARCH)
.setParam(IssuesWsParameters.PARAM_COMPONENT_UUIDS, subView.uuid())
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java
index e7da1c433fa..7041184c121 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SearchActionMediumTest.java
@@ -705,7 +705,7 @@ public class SearchActionMediumTest {
private void setDefaultProjectPermission(ComponentDto project) {
// project can be seen by anyone and by code viewer
- userSessionRule.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSessionRule.logIn().addProjectPermission(UserRole.USER, project);
// 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()));
@@ -715,7 +715,7 @@ public class SearchActionMediumTest {
private void setProjectPermission(ComponentDto project, String... permissions) {
// project can be seen by anyone and by code viewer
userSessionRule.logIn("admin");
- Arrays.stream(permissions).forEach(permission -> userSessionRule.addProjectUuidPermissions(permission, project.uuid()));
+ Arrays.stream(permissions).forEach(permission -> userSessionRule.addProjectPermission(permission, project));
tester.get(PermissionUpdater.class).apply(session, Arrays.stream(permissions)
// TODO correctly feed default organization. Not a problem as long as issues search does not support "anyone" for each organization
.map(permission -> new GroupPermissionChange(PermissionChange.Operation.ADD, permission, new ProjectId(project), GroupIdOrAnyone.forAnyone(project.getOrganizationUuid())))
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetSeverityActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetSeverityActionTest.java
index 9ee03ecfd6c..e06e50b8a9c 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetSeverityActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetSeverityActionTest.java
@@ -101,7 +101,7 @@ public class SetSeverityActionTest {
@Test
public void set_severity() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue(newIssue().setSeverity(MAJOR));
- setUserWithBrowseAndAdministerIssuePermission(issueDto.getProjectUuid());
+ setUserWithBrowseAndAdministerIssuePermission(issueDto);
call(issueDto.getKey(), MINOR);
@@ -114,7 +114,7 @@ public class SetSeverityActionTest {
@Test
public void insert_entry_in_changelog_when_setting_severity() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue(newIssue().setSeverity(MAJOR));
- setUserWithBrowseAndAdministerIssuePermission(issueDto.getProjectUuid());
+ setUserWithBrowseAndAdministerIssuePermission(issueDto);
call(issueDto.getKey(), MINOR);
@@ -128,7 +128,7 @@ public class SetSeverityActionTest {
@Test
public void fail_if_bad_severity() {
IssueDto issueDto = issueDbTester.insertIssue(newIssue().setSeverity("unknown"));
- setUserWithBrowseAndAdministerIssuePermission(issueDto.getProjectUuid());
+ setUserWithBrowseAndAdministerIssuePermission(issueDto);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Value of parameter 'severity' (unknown) must be one of: [INFO, MINOR, MAJOR, CRITICAL, BLOCKER]");
@@ -144,7 +144,7 @@ public class SetSeverityActionTest {
@Test
public void fail_when_missing_browse_permission() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
- userSession.logIn("john").addProjectUuidPermissions(ISSUE_ADMIN, issueDto.getProjectUuid());
+ logInAndAddProjectPermission(issueDto, ISSUE_ADMIN);
expectedException.expect(ForbiddenException.class);
call(issueDto.getKey(), MAJOR);
@@ -153,7 +153,7 @@ public class SetSeverityActionTest {
@Test
public void fail_when_missing_administer_issue_permission() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ logInAndAddProjectPermission(issueDto, USER);
expectedException.expect(ForbiddenException.class);
call(issueDto.getKey(), MAJOR);
@@ -183,9 +183,14 @@ public class SetSeverityActionTest {
return newDto(rule, file, project);
}
- private void setUserWithBrowseAndAdministerIssuePermission(String projectUuid) {
+ private void logInAndAddProjectPermission(IssueDto issueDto, String permission) {
+ userSession.logIn("john").addProjectPermission(permission, dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getProjectUuid()).get());
+ }
+
+ private void setUserWithBrowseAndAdministerIssuePermission(IssueDto issueDto) {
+ ComponentDto project = dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getProjectUuid()).get();
userSession.logIn("john")
- .addProjectUuidPermissions(ISSUE_ADMIN, projectUuid)
- .addProjectUuidPermissions(USER, projectUuid);
+ .addProjectPermission(ISSUE_ADMIN, project)
+ .addProjectPermission(USER, project);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetTagsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetTagsActionTest.java
index 2a9dbf7d550..694e530215f 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetTagsActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetTagsActionTest.java
@@ -95,7 +95,7 @@ public class SetTagsActionTest {
@Test
public void set_tags() {
IssueDto issueDto = db.issues().insertIssue(newIssue().setTags(singletonList("old-tag")));
- setUserWithBrowsePermission(issueDto.getProjectUuid());
+ setUserWithBrowsePermission(issueDto);
call(issueDto.getKey(), "bug", "todo");
@@ -107,7 +107,7 @@ public class SetTagsActionTest {
@Test
public void remove_existing_tags_when_value_is_not_set() {
IssueDto issueDto = db.issues().insertIssue(newIssue().setTags(singletonList("old-tag")));
- setUserWithBrowsePermission(issueDto.getProjectUuid());
+ setUserWithBrowsePermission(issueDto);
call(issueDto.getKey());
@@ -118,7 +118,7 @@ public class SetTagsActionTest {
@Test
public void remove_existing_tags_when_value_is_empty_string() {
IssueDto issueDto = db.issues().insertIssue(newIssue().setTags(singletonList("old-tag")));
- setUserWithBrowsePermission(issueDto.getProjectUuid());
+ setUserWithBrowsePermission(issueDto);
call(issueDto.getKey(), "");
@@ -129,7 +129,7 @@ public class SetTagsActionTest {
@Test
public void set_tags_using_deprecated_key_param() {
IssueDto issueDto = db.issues().insertIssue(newIssue().setTags(singletonList("old-tag")));
- setUserWithBrowsePermission(issueDto.getProjectUuid());
+ setUserWithBrowsePermission(issueDto);
ws.newRequest().setParam("key", issueDto.getKey()).setParam("tags", "bug").execute();
@@ -140,7 +140,7 @@ public class SetTagsActionTest {
@Test
public void tags_are_stored_as_lowercase() {
IssueDto issueDto = db.issues().insertIssue(newIssue().setTags(singletonList("old-tag")));
- setUserWithBrowsePermission(issueDto.getProjectUuid());
+ setUserWithBrowsePermission(issueDto);
call(issueDto.getKey(), "bug", "Convention");
@@ -151,7 +151,7 @@ public class SetTagsActionTest {
@Test
public void empty_tags_are_ignored() {
IssueDto issueDto = db.issues().insertIssue(newIssue().setTags(singletonList("old-tag")));
- setUserWithBrowsePermission(issueDto.getProjectUuid());
+ setUserWithBrowsePermission(issueDto);
call(issueDto.getKey(), "security", "", "convention");
@@ -162,7 +162,7 @@ public class SetTagsActionTest {
@Test
public void insert_entry_in_changelog_when_setting_tags() throws Exception {
IssueDto issueDto = db.issues().insertIssue(newIssue().setTags(singletonList("old-tag")));
- setUserWithBrowsePermission(issueDto.getProjectUuid());
+ setUserWithBrowsePermission(issueDto);
call(issueDto.getKey(), "new-tag");
@@ -176,7 +176,7 @@ public class SetTagsActionTest {
@Test
public void fail_when_bad_tag_format() {
IssueDto issueDto = db.issues().insertIssue(newIssue().setTags(singletonList("old-tag")));
- setUserWithBrowsePermission(issueDto.getProjectUuid());
+ setUserWithBrowsePermission(issueDto);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Tag 'pol op' is invalid. Rule tags accept only the characters: a-z, 0-9, '+', '-', '#', '.'");
@@ -194,7 +194,7 @@ public class SetTagsActionTest {
@Test
public void fail_when_missing_browse_permission() throws Exception {
IssueDto issueDto = db.issues().insertIssue();
- userSession.logIn("john").addProjectUuidPermissions(ISSUE_ADMIN, issueDto.getProjectUuid());
+ logInAndAddProjectPermission(issueDto, ISSUE_ADMIN);
expectedException.expect(ForbiddenException.class);
@@ -237,8 +237,12 @@ public class SetTagsActionTest {
return IssueTesting.newIssue(rule, file, project);
}
- private void setUserWithBrowsePermission(String projectUuid) {
- userSession.logIn("john").addProjectUuidPermissions(USER, projectUuid);
+ private void setUserWithBrowsePermission(IssueDto issueDto) {
+ logInAndAddProjectPermission(issueDto, USER);
+ }
+
+ private void logInAndAddProjectPermission(IssueDto issueDto, String permission) {
+ userSession.logIn("john").addProjectPermission(permission, dbClient.componentDao().selectByUuid(db.getSession(), issueDto.getProjectUuid()).get());
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetTypeActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetTypeActionTest.java
index ca5cd1b4436..b5e9af4f82e 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetTypeActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/SetTypeActionTest.java
@@ -97,7 +97,7 @@ public class SetTypeActionTest {
@Test
public void set_type() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue(newIssue().setType(CODE_SMELL));
- setUserWithBrowseAndAdministerIssuePermission(issueDto.getProjectUuid());
+ setUserWithBrowseAndAdministerIssuePermission(issueDto);
call(issueDto.getKey(), BUG.name());
@@ -109,7 +109,7 @@ public class SetTypeActionTest {
@Test
public void insert_entry_in_changelog_when_setting_type() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue(newIssue().setType(CODE_SMELL));
- setUserWithBrowseAndAdministerIssuePermission(issueDto.getProjectUuid());
+ setUserWithBrowseAndAdministerIssuePermission(issueDto);
call(issueDto.getKey(), BUG.name());
@@ -123,7 +123,7 @@ public class SetTypeActionTest {
@Test
public void fail_if_bad_type_value() {
IssueDto issueDto = issueDbTester.insertIssue(newIssue().setType(CODE_SMELL));
- setUserWithBrowseAndAdministerIssuePermission(issueDto.getProjectUuid());
+ setUserWithBrowseAndAdministerIssuePermission(issueDto);
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Value of parameter 'type' (unknown) must be one of: [CODE_SMELL, BUG, VULNERABILITY]");
@@ -139,7 +139,9 @@ public class SetTypeActionTest {
@Test
public void fail_when_missing_browse_permission() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
- userSession.logIn("john").addProjectUuidPermissions(ISSUE_ADMIN, issueDto.getProjectUuid());
+ String login = "john";
+ String permission = ISSUE_ADMIN;
+ logInAndAddProjectPermission(login, issueDto, permission);
expectedException.expect(ForbiddenException.class);
call(issueDto.getKey(), BUG.name());
@@ -148,7 +150,7 @@ public class SetTypeActionTest {
@Test
public void fail_when_missing_administer_issue_permission() throws Exception {
IssueDto issueDto = issueDbTester.insertIssue();
- userSession.logIn("john").addProjectUuidPermissions(USER, issueDto.getProjectUuid());
+ logInAndAddProjectPermission("john", issueDto, USER);
expectedException.expect(ForbiddenException.class);
call(issueDto.getKey(), BUG.name());
@@ -178,9 +180,14 @@ public class SetTypeActionTest {
return newDto(rule, file, project);
}
- private void setUserWithBrowseAndAdministerIssuePermission(String projectUuid) {
+ private void setUserWithBrowseAndAdministerIssuePermission(IssueDto issueDto) {
+ ComponentDto project = dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getProjectUuid()).get();
userSession.logIn("john")
- .addProjectUuidPermissions(ISSUE_ADMIN, projectUuid)
- .addProjectUuidPermissions(USER, projectUuid);
+ .addProjectPermission(ISSUE_ADMIN, project)
+ .addProjectPermission(USER, project);
+ }
+
+ private void logInAndAddProjectPermission(String login, IssueDto issueDto, String permission) {
+ userSession.logIn(login).addProjectPermission(permission, dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getProjectUuid()).get());
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/TagsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/TagsActionTest.java
index 2a3d61a577f..fdadb23e5c4 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/issue/ws/TagsActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ws/TagsActionTest.java
@@ -213,7 +213,7 @@ public class TagsActionTest {
}
private void setUserWithBrowsePermission(IssueDto issue) {
- userSession.logIn("john").addProjectUuidPermissions(USER, issue.getProjectUuid());
+ userSession.logIn("john").addProjectPermission(USER, db.getDbClient().componentDao().selectByUuid(db.getSession(), issue.getProjectUuid()).get());
}
private IssueDto insertIssueWithBrowsePermission(RuleDefinitionDto rule, String... tags) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/CreateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/CreateActionTest.java
index f8c2a445f7f..13a6c7d1d69 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/CreateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/CreateActionTest.java
@@ -69,17 +69,15 @@ public class CreateActionTest {
@Rule
public UserSessionRule userSession = UserSessionRule.standalone();
-
@Rule
public ExpectedException expectedException = ExpectedException.none();
-
@Rule
public DbTester db = DbTester.create(System2.INSTANCE);
-
@Rule
public EsTester es = new EsTester(new UserIndexDefinition(new MapSettings()));
DbClient dbClient = db.getDbClient();
+ ComponentDto project;
final DbSession dbSession = db.getSession();
@@ -97,12 +95,15 @@ public class CreateActionTest {
.setActive(true));
dbSession.commit();
- userSession.logIn("login").addProjectUuidPermissions(UserRole.ADMIN, DEFAULT_PROJECT_UUID);
+ OrganizationDto organizationDto = db.organizations().insert();
+ project = ComponentTesting.newProjectDto(organizationDto, DEFAULT_PROJECT_UUID).setKey(DEFAULT_PROJECT_KEY);
+ dbClient.componentDao().insert(dbSession, project);
+ dbSession.commit();
+ userSession.logIn("login").addProjectPermission(UserRole.ADMIN, project);
}
@Test
public void create_boolean_custom_measure_in_db() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(BOOL);
newRequest()
@@ -123,7 +124,6 @@ public class CreateActionTest {
@Test
public void create_int_custom_measure_in_db() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(INT);
newRequest()
@@ -139,7 +139,6 @@ public class CreateActionTest {
@Test
public void create_text_custom_measure_in_db() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(STRING);
newRequest()
@@ -154,9 +153,8 @@ public class CreateActionTest {
@Test
public void create_text_custom_measure_as_project_admin() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(STRING);
- userSession.logIn("login").addProjectUuidPermissions(UserRole.ADMIN, DEFAULT_PROJECT_UUID);
+ userSession.logIn("login").addProjectPermission(UserRole.ADMIN, project);
newRequest()
.setParam(CreateAction.PARAM_PROJECT_ID, DEFAULT_PROJECT_UUID)
@@ -170,7 +168,6 @@ public class CreateActionTest {
@Test
public void create_text_custom_measure_with_metric_key() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(STRING);
newRequest()
@@ -185,7 +182,6 @@ public class CreateActionTest {
@Test
public void create_text_custom_measure_with_project_key() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(STRING);
newRequest()
@@ -200,7 +196,6 @@ public class CreateActionTest {
@Test
public void create_float_custom_measure_in_db() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(FLOAT);
newRequest()
@@ -216,7 +211,6 @@ public class CreateActionTest {
@Test
public void create_work_duration_custom_measure_in_db() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(WORK_DUR);
newRequest()
@@ -232,7 +226,6 @@ public class CreateActionTest {
@Test
public void create_level_type_custom_measure_in_db() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(LEVEL);
newRequest()
@@ -247,7 +240,6 @@ public class CreateActionTest {
@Test
public void response_with_object_and_id() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(STRING);
WsTester.Result response = newRequest()
@@ -266,10 +258,11 @@ public class CreateActionTest {
@Test
public void create_custom_measure_on_a_view() throws Exception {
String viewUuid = "VIEW_UUID";
- dbClient.componentDao().insert(dbSession, ComponentTesting.newView(db.organizations().insert(), viewUuid));
+ ComponentDto view = ComponentTesting.newView(db.organizations().insert(), viewUuid);
+ dbClient.componentDao().insert(dbSession, view);
dbSession.commit();
MetricDto metric = insertMetric(BOOL);
- userSession.logIn("login").addProjectUuidPermissions(UserRole.ADMIN, viewUuid);
+ userSession.logIn("login").addProjectPermission(UserRole.ADMIN, view);
newRequest()
.setParam(CreateAction.PARAM_PROJECT_ID, viewUuid)
@@ -293,7 +286,7 @@ public class CreateActionTest {
dbClient.componentDao().insert(dbSession, ComponentTesting.newSubView(view, subViewUuid, "SUB_VIEW_KEY"));
dbSession.commit();
MetricDto metric = insertMetric(BOOL);
- userSession.logIn("login").addProjectUuidPermissions(UserRole.ADMIN, view.uuid());
+ userSession.logIn("login").addProjectPermission(UserRole.ADMIN, view);
newRequest()
.setParam(CreateAction.PARAM_PROJECT_ID, subViewUuid)
@@ -323,7 +316,6 @@ public class CreateActionTest {
public void fail_when_project_id_nor_project_key_provided() throws Exception {
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Either 'projectId' or 'projectKey' must be provided, not both");
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(STRING);
newRequest()
@@ -336,7 +328,6 @@ public class CreateActionTest {
public void fail_when_project_id_and_project_key_are_provided() throws Exception {
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Either 'projectId' or 'projectKey' must be provided, not both");
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(STRING);
newRequest()
@@ -351,8 +342,7 @@ public class CreateActionTest {
public void fail_when_project_key_does_not_exist_in_db() throws Exception {
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Component key 'another-project-key' not found");
- insertProject(DEFAULT_PROJECT_UUID);
- MetricDto metric = insertMetric(STRING);
+ insertMetric(STRING);
newRequest()
.setParam(CreateAction.PARAM_PROJECT_KEY, "another-project-key")
@@ -365,7 +355,6 @@ public class CreateActionTest {
public void fail_when_project_id_does_not_exist_in_db() throws Exception {
expectedException.expect(NotFoundException.class);
expectedException.expectMessage("Component id 'another-project-uuid' not found");
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(STRING);
newRequest()
@@ -379,8 +368,7 @@ public class CreateActionTest {
public void fail_when_metric_id_nor_metric_key_is_provided() throws Exception {
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The metric id or the metric key must be provided, not both.");
- insertProject(DEFAULT_PROJECT_UUID);
- MetricDto metric = insertMetric(STRING);
+ insertMetric(STRING);
newRequest()
.setParam(CreateAction.PARAM_PROJECT_ID, DEFAULT_PROJECT_UUID)
@@ -392,7 +380,6 @@ public class CreateActionTest {
public void fail_when_metric_id_and_metric_key_are_provided() throws Exception {
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The metric id or the metric key must be provided, not both.");
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(STRING);
newRequest()
@@ -405,9 +392,6 @@ public class CreateActionTest {
@Test
public void fail_when_metric_is_not_found_in_db() throws Exception {
- dbClient.componentDao().insert(dbSession, ComponentTesting.newProjectDto(db.organizations().insert(), DEFAULT_PROJECT_UUID));
- dbSession.commit();
-
expectedException.expect(RowNotFoundException.class);
expectedException.expectMessage("Metric id '42' not found");
@@ -420,7 +404,6 @@ public class CreateActionTest {
@Test
public void fail_when_measure_already_exists_on_same_project_and_same_metric() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(STRING);
expectedException.expect(ServerException.class);
@@ -440,7 +423,6 @@ public class CreateActionTest {
@Test
public void fail_when_value_is_not_well_formatted() throws Exception {
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(BOOL);
expectedException.expect(BadRequestException.class);
@@ -455,7 +437,6 @@ public class CreateActionTest {
@Test
public void fail_when_not_project_administrator() throws Exception {
userSession.logIn();
- insertProject(DEFAULT_PROJECT_UUID);
MetricDto metric = insertMetric(STRING);
expectedException.expect(ForbiddenException.class);
@@ -471,8 +452,6 @@ public class CreateActionTest {
public void fail_when_not_a_project() throws Exception {
MetricDto metric = MetricTesting.newMetricDto().setEnabled(true).setValueType(STRING.name()).setKey("metric-key");
dbClient.metricDao().insert(dbSession, metric);
- ComponentDto project = ComponentTesting.newProjectDto(db.organizations().insert(), DEFAULT_PROJECT_UUID).setKey(DEFAULT_PROJECT_KEY);
- dbClient.componentDao().insert(dbSession, project);
dbClient.componentDao().insert(dbSession, ComponentTesting.newDirectory(project, "directory-uuid", "path/to/directory").setKey("directory-key"));
dbSession.commit();
@@ -497,9 +476,4 @@ public class CreateActionTest {
return metric;
}
- private void insertProject(String projectUuid) {
- OrganizationDto organizationDto = db.organizations().insert();
- dbClient.componentDao().insert(dbSession, ComponentTesting.newProjectDto(organizationDto, projectUuid).setKey(DEFAULT_PROJECT_KEY));
- dbSession.commit();
- }
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/DeleteActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/DeleteActionTest.java
index c96d9d8daa6..ddc01c1061c 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/DeleteActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/DeleteActionTest.java
@@ -64,7 +64,7 @@ public class DeleteActionTest {
@Test
public void project_administrator_can_delete_custom_measures() throws Exception {
ComponentDto project = db.components().insertProject();
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
long id = insertCustomMeasure(project);
newRequest().setParam(PARAM_ID, valueOf(id)).execute();
diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/MetricsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/MetricsActionTest.java
index c979aa7d2e7..a6e20b455a9 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/MetricsActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/MetricsActionTest.java
@@ -76,7 +76,7 @@ public class MetricsActionTest {
.setActive(true));
ws = new WsTester(new CustomMeasuresWs(new MetricsAction(dbClient, userSession, new ComponentFinder(dbClient))));
defaultProject = insertDefaultProject();
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, defaultProject.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, defaultProject);
}
@Test
@@ -145,7 +145,7 @@ public class MetricsActionTest {
@Test
public void list_metrics_as_a_project_admin() throws Exception {
insertCustomMetric("metric-key-1");
- userSession.logIn("login").addProjectUuidPermissions(UserRole.ADMIN, defaultProject.uuid());
+ userSession.logIn("login").addProjectPermission(UserRole.ADMIN, defaultProject);
String response = newRequest().outputAsString();
diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/SearchActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/SearchActionTest.java
index 06f5bbc8045..b9ea1be717e 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/SearchActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/SearchActionTest.java
@@ -81,7 +81,7 @@ public class SearchActionTest {
CustomMeasureJsonWriter customMeasureJsonWriter = new CustomMeasureJsonWriter(new UserJsonWriter(userSessionRule));
ws = new WsTester(new CustomMeasuresWs(new SearchAction(dbClient, customMeasureJsonWriter, userSessionRule, new ComponentFinder(dbClient))));
defaultProject = insertDefaultProject();
- userSessionRule.logIn().addProjectUuidPermissions(UserRole.ADMIN, defaultProject.uuid());
+ userSessionRule.logIn().addProjectPermission(UserRole.ADMIN, defaultProject);
db.getDbClient().userDao().insert(dbSession, new UserDto()
.setLogin("login")
@@ -200,7 +200,7 @@ public class SearchActionTest {
@Test
public void search_as_project_admin() throws Exception {
- userSessionRule.logIn("login").addProjectUuidPermissions(UserRole.ADMIN, DEFAULT_PROJECT_UUID);
+ userSessionRule.logIn("login").addProjectPermission(UserRole.ADMIN, defaultProject);
MetricDto metric1 = insertCustomMetric(1);
insertCustomMeasure(1, metric1);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/UpdateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/UpdateActionTest.java
index b5e151d3638..193f27620d0 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/UpdateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/UpdateActionTest.java
@@ -328,6 +328,6 @@ public class UpdateActionTest {
}
private void logInAsProjectAdministrator(ComponentDto component) {
- userSessionRule.logIn("login").addProjectUuidPermissions(UserRole.ADMIN, component.uuid());
+ userSessionRule.logIn("login").addProjectPermission(UserRole.ADMIN, component);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java
index 93dce596cd1..8ae3aabc805 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentActionTest.java
@@ -96,8 +96,8 @@ public class ComponentActionTest {
@Test
public void provided_project() {
- componentDb.insertComponent(newProjectDto(db.getDefaultOrganization(), PROJECT_UUID));
- userSession.addProjectUuidPermissions(UserRole.USER, PROJECT_UUID);
+ ComponentDto project = componentDb.insertComponent(newProjectDto(db.getDefaultOrganization(), PROJECT_UUID));
+ userSession.addProjectPermission(UserRole.USER, project);
insertNclocMetric();
ComponentWsResponse response = newRequest(PROJECT_UUID, "ncloc");
diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java
index 8ebad37a738..95a9f77d4bb 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/ComponentTreeActionTest.java
@@ -148,7 +148,7 @@ public class ComponentTreeActionTest {
.setPeriodDate(System.currentTimeMillis())
.setPeriodMode("last_version")
.setPeriodDate(System.currentTimeMillis()));
- userSession.anonymous().addProjectUuidPermissions(UserRole.USER, "project-uuid");
+ userSession.anonymous().addProjectPermission(UserRole.USER, projectDto);
ComponentDto directoryDto = newDirectory(projectDto, "directory-uuid", "path/to/directory").setName("directory-1");
componentDb.insertComponent(directoryDto);
ComponentDto file = newFileDto(directoryDto, null, "file-uuid").setName("file-1");
@@ -179,7 +179,7 @@ public class ComponentTreeActionTest {
public void load_measures_with_best_value() {
ComponentDto projectDto = newProjectDto(db.getDefaultOrganization(), "project-uuid");
SnapshotDto projectSnapshot = componentDb.insertProjectAndSnapshot(projectDto);
- userSession.anonymous().addProjectUuidPermissions(UserRole.USER, "project-uuid");
+ userSession.anonymous().addProjectPermission(UserRole.USER, projectDto);
ComponentDto directoryDto = newDirectory(projectDto, "directory-uuid", "path/to/directory").setName("directory-1");
componentDb.insertComponent(directoryDto);
ComponentDto file = newFileDto(directoryDto, null, "file-uuid").setName("file-1");
@@ -221,8 +221,8 @@ public class ComponentTreeActionTest {
@Test
public void use_best_value_for_rating() {
- userSession.anonymous().addProjectUuidPermissions(UserRole.USER, "project-uuid");
ComponentDto projectDto = newProjectDto(db.getDefaultOrganization(), "project-uuid");
+ userSession.anonymous().addProjectPermission(UserRole.USER, projectDto);
componentDb.insertComponent(projectDto);
SnapshotDto projectSnapshot = dbClient.snapshotDao().insert(dbSession, newAnalysis(projectDto)
.setPeriodDate(parseDateTime("2016-01-11T10:49:50+0100").getTime())
diff --git a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/SearchHistoryActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/SearchHistoryActionTest.java
index 24e464f9190..dfc31efbfd4 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/measure/ws/SearchHistoryActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/measure/ws/SearchHistoryActionTest.java
@@ -94,7 +94,7 @@ public class SearchHistoryActionTest {
public void setUp() {
project = newProjectDto(db.getDefaultOrganization());
analysis = db.components().insertProjectAndSnapshot(project);
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
nclocMetric = insertNclocMetric();
complexityMetric = insertComplexityMetric();
newViolationMetric = insertNewViolationMetric();
@@ -105,7 +105,7 @@ public class SearchHistoryActionTest {
@Test
public void empty_response() {
project = db.components().insertProject();
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
wsRequest
.setComponent(project.getKey())
.setMetrics(singletonList(complexityMetric.getKey()));
@@ -173,7 +173,7 @@ public class SearchHistoryActionTest {
@Test
public void pagination_applies_to_analyses() {
project = db.components().insertProject();
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
List<String> analysisDates = LongStream.rangeClosed(1, 9)
.mapToObj(i -> dbClient.snapshotDao().insert(dbSession, newAnalysis(project).setCreatedAt(i * 1_000_000_000)))
.peek(a -> dbClient.measureDao().insert(dbSession, newMeasureDto(complexityMetric, project, a).setValue(101d)))
@@ -192,7 +192,7 @@ public class SearchHistoryActionTest {
@Test
public void inclusive_from_and_to_dates() {
project = db.components().insertProject();
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
List<String> analysisDates = LongStream.rangeClosed(1, 9)
.mapToObj(i -> dbClient.snapshotDao().insert(dbSession, newAnalysis(project).setCreatedAt(System2.INSTANCE.now() + i * 1_000_000_000L)))
.peek(a -> dbClient.measureDao().insert(dbSession, newMeasureDto(complexityMetric, project, a).setValue(Double.valueOf(a.getCreatedAt()))))
@@ -263,7 +263,7 @@ public class SearchHistoryActionTest {
@Test
public void fail_if_not_enough_permissions() {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
expectedException.expect(ForbiddenException.class);
@@ -293,7 +293,7 @@ public class SearchHistoryActionTest {
@Test
public void json_example() {
project = db.components().insertProject();
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
long now = parseDateTime("2017-01-23T17:00:53+0100").getTime();
LongStream.rangeClosed(0, 2)
.mapToObj(i -> dbClient.snapshotDao().insert(dbSession, newAnalysis(project).setCreatedAt(now + i * 24 * 1_000 * 60 * 60)))
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddGroupActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddGroupActionTest.java
index cf047f6794f..85d258bdb70 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddGroupActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddGroupActionTest.java
@@ -301,7 +301,7 @@ public class AddGroupActionTest extends BasePermissionWsTest<AddGroupAction> {
public void adding_project_permission_is_allowed_to_project_administrators() throws Exception {
GroupDto group = db.users().insertGroup(db.getDefaultOrganization(), "sonar-administrators");
ComponentDto project = db.components().insertProject();
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
newRequest()
.setParam(PARAM_GROUP_NAME, group.getName())
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java
index 1ead26ac663..2cc8fa0bfce 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/AddUserActionTest.java
@@ -255,7 +255,7 @@ public class AddUserActionTest extends BasePermissionWsTest<AddUserAction> {
public void adding_project_permission_is_allowed_to_project_administrators() throws Exception {
ComponentDto project = db.components().insertProject();
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
newRequest()
.setParam(PARAM_USER_LOGIN, user.getLogin())
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/GroupsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/GroupsActionTest.java
index 077a33c362a..d755750c72f 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/GroupsActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/GroupsActionTest.java
@@ -164,7 +164,7 @@ public class GroupsActionTest extends BasePermissionWsTest<GroupsAction> {
GroupDto groupWithoutPermission = db.users().insertGroup(organizationDto, "group-without-permission");
- userSession.logIn().addProjectUuidPermissions(ADMIN, "project-uuid");
+ userSession.logIn().addProjectPermission(ADMIN, project);
String result = newRequest()
.setParam(PARAM_PERMISSION, ISSUE_ADMIN)
.setParam(PARAM_PROJECT_ID, "project-uuid")
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveGroupActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveGroupActionTest.java
index 32c66ee1040..5eb2310c45f 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveGroupActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveGroupActionTest.java
@@ -296,7 +296,7 @@ public class RemoveGroupActionTest extends BasePermissionWsTest<RemoveGroupActio
db.users().insertProjectPermissionOnGroup(aGroup, CODEVIEWER, project);
db.users().insertProjectPermissionOnGroup(aGroup, ISSUE_ADMIN, project);
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
newRequest()
.setParam(PARAM_GROUP_NAME, aGroup.getName())
.setParam(PARAM_PROJECT_ID, project.uuid())
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveUserActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveUserActionTest.java
index e176dd995ba..2972a411324 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveUserActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveUserActionTest.java
@@ -265,7 +265,7 @@ public class RemoveUserActionTest extends BasePermissionWsTest<RemoveUserAction>
ComponentDto project = db.components().insertProject();
db.users().insertProjectPermissionOnUser(user, CODEVIEWER, project);
db.users().insertProjectPermissionOnUser(user, ISSUE_ADMIN, project);
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
newRequest()
.setParam(PARAM_USER_LOGIN, user.getLogin())
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchProjectPermissionsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchProjectPermissionsActionTest.java
index 4c2996e7ba3..5759b7c9e7a 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchProjectPermissionsActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/SearchProjectPermissionsActionTest.java
@@ -120,8 +120,8 @@ public class SearchProjectPermissionsActionTest extends BasePermissionWsTest<Sea
@Test
public void search_project_permissions_with_project_permission() throws Exception {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, "project-uuid");
- db.components().insertComponent(newProjectDto(db.getDefaultOrganization(), "project-uuid"));
+ ComponentDto project = db.components().insertComponent(newProjectDto(db.getDefaultOrganization(), "project-uuid"));
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
String result = newRequest()
.setParam(PARAM_PROJECT_ID, "project-uuid")
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java
index 175dec1ef7d..7c224c86043 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java
@@ -96,7 +96,7 @@ public class UsersActionTest extends BasePermissionWsTest<UsersAction> {
UserDto withoutPermission = db.users().insertUser(newUserDto());
db.organizations().addMember(db.getDefaultOrganization(), withoutPermission);
- userSession.logIn().addProjectUuidPermissions(SYSTEM_ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(SYSTEM_ADMIN, project);
String result = newRequest()
.setParam(PARAM_PERMISSION, ISSUE_ADMIN)
.setParam(PARAM_PROJECT_ID, project.uuid())
diff --git a/server/sonar-server/src/test/java/org/sonar/server/project/ws/DeleteActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/project/ws/DeleteActionTest.java
index b2a493d5a39..eba3ee37746 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/project/ws/DeleteActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/project/ws/DeleteActionTest.java
@@ -70,11 +70,11 @@ public class DeleteActionTest {
@Before
public void setUp() {
ws = new WsTester(new ProjectsWs(
- new DeleteAction(
- componentCleanerService,
- new ComponentFinder(dbClient),
- dbClient,
- userSessionRule)));
+ new DeleteAction(
+ componentCleanerService,
+ new ComponentFinder(dbClient),
+ dbClient,
+ userSessionRule)));
}
@Test
@@ -107,7 +107,7 @@ public class DeleteActionTest {
@Test
public void project_administrator_deletes_the_project_by_uuid() throws Exception {
ComponentDto project = componentDbTester.insertProject();
- userSessionRule.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSessionRule.logIn().addProjectPermission(UserRole.ADMIN, project);
call(newRequest().setParam(PARAM_PROJECT_ID, project.uuid()));
@@ -117,7 +117,7 @@ public class DeleteActionTest {
@Test
public void project_administrator_deletes_the_project_by_key() throws Exception {
ComponentDto project = componentDbTester.insertProject();
- userSessionRule.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSessionRule.logIn().addProjectPermission(UserRole.ADMIN, project);
call(newRequest().setParam(PARAM_PROJECT, project.key()));
@@ -128,7 +128,10 @@ public class DeleteActionTest {
public void return_403_if_not_project_admin_nor_org_admin() throws Exception {
ComponentDto project = componentDbTester.insertProject();
- userSessionRule.logIn().addProjectUuidPermissions(project.uuid(), UserRole.CODEVIEWER, UserRole.ISSUE_ADMIN, UserRole.USER);
+ userSessionRule.logIn()
+ .addProjectPermission(UserRole.CODEVIEWER, project)
+ .addProjectPermission(UserRole.ISSUE_ADMIN, project)
+ .addProjectPermission(UserRole.USER, project);
expectedException.expect(ForbiddenException.class);
call(newRequest().setParam(PARAM_PROJECT_ID, project.uuid()));
diff --git a/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/CreateEventActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/CreateEventActionTest.java
index 8424b774e1f..e4192a16d39 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/CreateEventActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/CreateEventActionTest.java
@@ -42,7 +42,6 @@ import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
-import org.sonarqube.ws.MediaTypes;
import org.sonarqube.ws.ProjectAnalyses;
import org.sonarqube.ws.ProjectAnalyses.CreateEventResponse;
import org.sonarqube.ws.client.projectanalysis.CreateEventRequest;
@@ -354,7 +353,7 @@ public class CreateEventActionTest {
}
private void logInAsProjectAdministrator(ComponentDto project) {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
}
private CreateEventResponse call(CreateEventRequest.Builder requestBuilder) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/DeleteActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/DeleteActionTest.java
index 9f37bae452a..01be23ac7e2 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/DeleteActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/DeleteActionTest.java
@@ -130,6 +130,6 @@ public class DeleteActionTest {
}
private void logInAsProjectAdministrator(ComponentDto project) {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/DeleteEventActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/DeleteEventActionTest.java
index 65be20d0827..b298e3e799a 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/DeleteEventActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/DeleteEventActionTest.java
@@ -156,6 +156,6 @@ public class DeleteEventActionTest {
}
private void logInAsProjectAdministrator(ComponentDto project) {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/SearchActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/SearchActionTest.java
index c214937db6e..d9a22a65061 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/SearchActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/SearchActionTest.java
@@ -80,7 +80,7 @@ public class SearchActionTest {
public void json_example() {
OrganizationDto organizationDto = db.organizations().insert();
ComponentDto project = db.components().insertComponent(newProjectDto(organizationDto).setKey(KEY_PROJECT_EXAMPLE_001));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
SnapshotDto a1 = db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setCreatedAt(parseDateTime("2016-12-11T17:12:45+0100").getTime()));
SnapshotDto a2 = db.components().insertSnapshot(newAnalysis(project).setUuid("A2").setCreatedAt(parseDateTime("2016-12-12T17:12:45+0100").getTime()));
db.events().insertEvent(newEvent(a1).setUuid("E11")
@@ -105,7 +105,7 @@ public class SearchActionTest {
@Test
public void return_analyses_ordered_by_analysis_date() {
ComponentDto project = db.components().insertComponent(newProjectDto(db.organizations().insert()).setKey("P1"));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setCreatedAt(1_000_000L));
db.components().insertSnapshot(newAnalysis(project).setUuid("A2").setCreatedAt(2_000_000L));
db.components().insertSnapshot(newAnalysis(project).setUuid("A3").setCreatedAt(3_000_000L));
@@ -122,7 +122,7 @@ public class SearchActionTest {
@Test
public void return_only_processed_analyses() {
ComponentDto project = db.components().insertComponent(newProjectDto(db.getDefaultOrganization()).setKey("P1"));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
db.components().insertSnapshot(newAnalysis(project).setUuid("A1"));
db.components().insertSnapshot(newAnalysis(project).setUuid("A2").setStatus(SnapshotDto.STATUS_UNPROCESSED));
@@ -136,7 +136,7 @@ public class SearchActionTest {
public void return_events() {
OrganizationDto organizationDto = db.organizations().insert();
ComponentDto project = db.components().insertComponent(newProjectDto(organizationDto).setKey("P1"));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
SnapshotDto a1 = db.components().insertSnapshot(newAnalysis(project).setUuid("A1"));
SnapshotDto a42 = db.components().insertSnapshot(newAnalysis(newProjectDto(organizationDto)).setUuid("A42"));
EventDto e1 = db.events().insertEvent(newEvent(a1).setUuid("E1").setName("N1").setCategory(EventCategory.QUALITY_GATE.getLabel()).setDescription("D1"));
@@ -156,7 +156,7 @@ public class SearchActionTest {
@Test
public void paginate_analyses() {
ComponentDto project = db.components().insertProject();
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
IntStream.rangeClosed(1, 9).forEach(i -> db.components().insertSnapshot(newAnalysis(project).setCreatedAt(1_000_000L * i).setUuid("A" + i)));
SearchResponse result = call(SearchRequest.builder()
@@ -172,7 +172,7 @@ public class SearchActionTest {
@Test
public void filter_by_category() {
ComponentDto project = db.components().insertComponent(newProjectDto(db.organizations().insert()).setKey("P1"));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
SnapshotDto a1 = db.components().insertSnapshot(newAnalysis(project).setUuid("A1"));
SnapshotDto a2 = db.components().insertSnapshot(newAnalysis(project).setUuid("A2"));
SnapshotDto a42 = db.components().insertSnapshot(newAnalysis(project).setUuid("A42"));
@@ -193,7 +193,7 @@ public class SearchActionTest {
@Test
public void paginate_with_filter_on_category() {
ComponentDto project = db.components().insertComponent(newProjectDto(db.organizations().insert()).setKey("P1"));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
SnapshotDto a1 = db.components().insertSnapshot(newAnalysis(project).setUuid("A1").setCreatedAt(1_000_000L));
SnapshotDto a2 = db.components().insertSnapshot(newAnalysis(project).setUuid("A2").setCreatedAt(2_000_000L));
SnapshotDto a3 = db.components().insertSnapshot(newAnalysis(project).setUuid("A3").setCreatedAt(3_000_000L));
diff --git a/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/UpdateEventActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/UpdateEventActionTest.java
index f59583af161..2524d7e2f36 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/UpdateEventActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/projectanalysis/ws/UpdateEventActionTest.java
@@ -82,6 +82,7 @@ public class UpdateEventActionTest {
assertJson(result).isSimilarTo(getClass().getResource("update_event-example.json"));
}
+
@Test
public void update_name_in_db() {
SnapshotDto analysis = createAnalysisAndLogInAsProjectAdministrator("5.6");
@@ -161,7 +162,7 @@ public class UpdateEventActionTest {
ComponentDto project = newProjectDto(db.organizations().insert());
SnapshotDto analysis = db.components().insertProjectAndSnapshot(project);
db.events().insertEvent(newEvent(analysis).setUuid("E1"));
- userSession.logIn().addProjectUuidPermissions(project.uuid(), UserRole.USER);
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
expectedException.expect(ForbiddenException.class);
@@ -232,7 +233,7 @@ public class UpdateEventActionTest {
}
private void logInAsProjectAdministrator(ComponentDto project) {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
}
private SnapshotDto createAnalysisAndLogInAsProjectAdministrator(String version) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/CreateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/CreateActionTest.java
index 2178d69340c..81fc3651c4f 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/CreateActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/CreateActionTest.java
@@ -226,6 +226,6 @@ public class CreateActionTest {
}
private void logInAsProjectAdministrator(ComponentDto project) {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/DeleteActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/DeleteActionTest.java
index 06d0a56041e..ad81d1daea9 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/DeleteActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/DeleteActionTest.java
@@ -100,7 +100,7 @@ public class DeleteActionTest {
ComponentLinkDto customLink2 = insertCustomLink(project2.uuid());
Long id1 = customLink1.getId();
Long id2 = customLink2.getId();
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project1.uuid(), project2.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project1, project2);
deleteLink(id1);
assertLinkIsDeleted(id1);
@@ -206,6 +206,6 @@ public class DeleteActionTest {
}
private void logInAsProjectAdministrator(ComponentDto project) {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/SearchActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/SearchActionTest.java
index 29ff9d0d6dc..a48d7fa38b9 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/SearchActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/projectlink/ws/SearchActionTest.java
@@ -166,7 +166,7 @@ public class SearchActionTest {
@Test
public void project_administrator_can_search_for_links() throws IOException {
ComponentDto project = insertProject();
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
checkItWorks(project);
}
@@ -174,7 +174,7 @@ public class SearchActionTest {
@Test
public void project_user_can_search_for_links() throws IOException {
ComponentDto project = insertProject();
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
checkItWorks(project);
}
@@ -270,6 +270,6 @@ public class SearchActionTest {
}
private void logInAsProjectAdministrator(ComponentDto project) {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/projecttag/ws/SetActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/projecttag/ws/SetActionTest.java
index 3af5a737aac..086f7c18b84 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/projecttag/ws/SetActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/projecttag/ws/SetActionTest.java
@@ -99,7 +99,7 @@ public class SetActionTest {
@Test
public void set_tags_as_project_admin() {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
call(project.key(), "platform, lambda");
@@ -123,7 +123,7 @@ public class SetActionTest {
@Test
public void fail_if_not_project_admin() {
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.key());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
expectedException.expect(ForbiddenException.class);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/property/ws/IndexActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/property/ws/IndexActionTest.java
index 7d254e01226..8be1173c0a8 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/property/ws/IndexActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/property/ws/IndexActionTest.java
@@ -391,7 +391,7 @@ public class IndexActionTest {
@Test
public void does_not_fail_when_user_has_not_project_browse_permission() throws Exception {
- userSession.logIn("project-admin").addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSession.logIn("project-admin").addProjectPermission(CODEVIEWER, project);
definitions.addComponent(PropertyDefinition.builder("foo").build());
propertyDb.insertProperties(newComponentPropertyDto(project).setKey("foo").setValue("one"));
@@ -468,7 +468,7 @@ public class IndexActionTest {
}
private void logInAsProjectUser() {
- userSession.logIn().addProjectUuidPermissions(USER, project.uuid());
+ userSession.logIn().addProjectPermission(USER, project);
}
private void logInAsSystemAdministrator() {
@@ -477,8 +477,8 @@ public class IndexActionTest {
private void logInAsProjectAdmin() {
userSession.logIn()
- .addProjectUuidPermissions(ADMIN, project.uuid())
- .addProjectUuidPermissions(USER, project.uuid());
+ .addProjectPermission(ADMIN, project)
+ .addProjectPermission(USER, project);
}
protected static URL resource(String s) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/DeselectActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/DeselectActionTest.java
index a4231ce9898..debfee708d1 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/DeselectActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/DeselectActionTest.java
@@ -117,7 +117,7 @@ public class DeselectActionTest {
String gateId = String.valueOf(gate.getId());
associateProjectToQualityGate(project.getId(), gateId);
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
callByKey(gateId, project.getKey());
@@ -162,7 +162,7 @@ public class DeselectActionTest {
public void fail_when_not_project_admin() throws Exception {
String gateId = String.valueOf(gate.getId());
- userSession.logIn().addProjectUuidPermissions(UserRole.ISSUE_ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ISSUE_ADMIN, project);
expectedException.expect(ForbiddenException.class);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/GetByProjectActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/GetByProjectActionTest.java
index 40a633efb4b..522eb69c460 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/GetByProjectActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/GetByProjectActionTest.java
@@ -40,7 +40,6 @@ import org.sonar.server.qualitygate.QualityGateFinder;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.TestRequest;
import org.sonar.server.ws.WsActionTester;
-import org.sonarqube.ws.MediaTypes;
import org.sonarqube.ws.WsQualityGates;
import org.sonarqube.ws.WsQualityGates.GetByProjectWsResponse;
@@ -136,7 +135,7 @@ public class GetByProjectActionTest {
@Test
public void get_with_project_admin_permission() {
ComponentDto project = componentDb.insertProject();
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
QualityGateDto dbQualityGate = insertQualityGate("Sonar way");
setDefaultQualityGate(dbQualityGate.getId());
@@ -148,7 +147,7 @@ public class GetByProjectActionTest {
@Test
public void get_with_project_user_permission() {
ComponentDto project = componentDb.insertProject();
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
QualityGateDto dbQualityGate = insertQualityGate("Sonar way");
setDefaultQualityGate(dbQualityGate.getId());
@@ -234,6 +233,6 @@ public class GetByProjectActionTest {
}
private void logInAsProjectUser(ComponentDto project) {
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/ProjectStatusActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/ProjectStatusActionTest.java
index f169360e8b5..85f835eeb66 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/ProjectStatusActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/ProjectStatusActionTest.java
@@ -78,7 +78,7 @@ public class ProjectStatusActionTest {
@Test
public void json_example() throws IOException {
ComponentDto project = db.components().insertProject(db.organizations().insert());
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
SnapshotDto snapshot = dbClient.snapshotDao().insert(dbSession, newAnalysis(project)
.setPeriodMode("last_version")
@@ -113,7 +113,7 @@ public class ProjectStatusActionTest {
newMeasureDto(metric, project, snapshot)
.setData(IOUtils.toString(getClass().getResource("ProjectStatusActionTest/measure_data.json"))));
dbSession.commit();
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
String response = ws.newRequest()
.setParam(PARAM_PROJECT_ID, project.uuid())
@@ -136,7 +136,7 @@ public class ProjectStatusActionTest {
newMeasureDto(metric, project, snapshot)
.setData(IOUtils.toString(getClass().getResource("ProjectStatusActionTest/measure_data.json"))));
dbSession.commit();
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
String response = ws.newRequest()
.setParam(PARAM_PROJECT_KEY, "project-key")
@@ -150,7 +150,7 @@ public class ProjectStatusActionTest {
ComponentDto project = db.components().insertProject(db.organizations().insert());
SnapshotDto snapshot = dbClient.snapshotDao().insert(dbSession, newAnalysis(project));
dbSession.commit();
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
ProjectStatusWsResponse result = call(snapshot.getUuid());
@@ -161,7 +161,7 @@ public class ProjectStatusActionTest {
@Test
public void return_undefined_status_if_snapshot_is_not_found() {
ComponentDto project = db.components().insertProject(db.organizations().insert());
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
ProjectStatusWsResponse result = callByProjectUuid(project.uuid());
@@ -174,7 +174,7 @@ public class ProjectStatusActionTest {
ComponentDto project = db.components().insertProject(db.organizations().insert());
SnapshotDto snapshot = dbClient.snapshotDao().insert(dbSession, newAnalysis(project));
dbSession.commit();
- userSession.addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.addProjectPermission(UserRole.ADMIN, project);
call(snapshot.getUuid());
}
@@ -184,7 +184,7 @@ public class ProjectStatusActionTest {
ComponentDto project = db.components().insertProject(db.organizations().insert());
SnapshotDto snapshot = dbClient.snapshotDao().insert(dbSession, newAnalysis(project));
dbSession.commit();
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
call(snapshot.getUuid());
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/SelectActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/SelectActionTest.java
index 30347da3694..c89cdb21347 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/SelectActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/SelectActionTest.java
@@ -99,7 +99,7 @@ public class SelectActionTest {
@Test
public void project_admin() throws Exception {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
String gateId = String.valueOf(gate.getId());
callByKey(gateId, project.getKey());
@@ -153,7 +153,7 @@ public class SelectActionTest {
public void fail_when_not_project_admin() throws Exception {
String gateId = String.valueOf(gate.getId());
- userSession.logIn().addProjectUuidPermissions(UserRole.ISSUE_ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ISSUE_ADMIN, project);
expectedException.expect(ForbiddenException.class);
callByKey(gateId, project.getKey());
diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/AddProjectActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/AddProjectActionTest.java
index 7c3656561db..d3f59227c05 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/AddProjectActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/AddProjectActionTest.java
@@ -172,7 +172,7 @@ public class AddProjectActionTest {
public void project_administrator_can_change_profile() throws Exception {
ComponentDto project = db.components().insertProject(db.getDefaultOrganization());
QualityProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
call(project, profile);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/RemoveProjectActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/RemoveProjectActionTest.java
index 5ff0737471c..3e9ccc3b389 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/RemoveProjectActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/RemoveProjectActionTest.java
@@ -112,7 +112,7 @@ public class RemoveProjectActionTest {
ComponentDto project = db.components().insertProject(db.getDefaultOrganization());
QualityProfileDto profile = db.qualityProfiles().insert(db.getDefaultOrganization());
db.qualityProfiles().associateProjectWithQualityProfile(project, profile);
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
call(project, profile);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ListDefinitionsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ListDefinitionsActionTest.java
index 8abc30b9bbd..c0b895e0995 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ListDefinitionsActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ListDefinitionsActionTest.java
@@ -383,7 +383,7 @@ public class ListDefinitionsActionTest {
@Test
public void fail_when_user_has_not_project_browse_permission() throws Exception {
- userSession.logIn("project-admin").addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSession.logIn("project-admin").addProjectPermission(CODEVIEWER, project);
propertyDefinitions.addComponent(PropertyDefinition.builder("foo").build());
expectedException.expect(ForbiddenException.class);
@@ -469,7 +469,7 @@ public class ListDefinitionsActionTest {
}
private void logInAsProjectUser() {
- userSession.logIn().addProjectUuidPermissions(USER, project.uuid());
+ userSession.logIn().addProjectPermission(USER, project);
}
private void logInAsAdmin(OrganizationDto org) {
@@ -478,8 +478,8 @@ public class ListDefinitionsActionTest {
private void logInAsProjectAdmin() {
userSession.logIn()
- .addProjectUuidPermissions(ADMIN, project.uuid())
- .addProjectUuidPermissions(USER, project.uuid());
+ .addProjectPermission(ADMIN, project)
+ .addProjectPermission(USER, project);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ResetActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ResetActionTest.java
index 35c54e084ee..a8cfe9634ca 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ResetActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ResetActionTest.java
@@ -230,7 +230,7 @@ public class ResetActionTest {
@Test
public void throw_ForbiddenException_if_project_setting_and_not_project_administrator() throws Exception {
- userSession.logIn().addProjectUuidPermissions(USER, project.uuid());
+ userSession.logIn().addProjectPermission(USER, project);
definitions.addComponent(PropertyDefinition.builder("foo").build());
expectedException.expect(ForbiddenException.class);
@@ -317,7 +317,7 @@ public class ResetActionTest {
}
private void logInAsProjectAdmin() {
- userSession.logIn().addProjectUuidPermissions(ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(ADMIN, project);
}
private void assertGlobalPropertyDoesNotExist(String key) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/setting/ws/SetActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/setting/ws/SetActionTest.java
index 9c33f556537..06f23556861 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/setting/ws/SetActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/setting/ws/SetActionTest.java
@@ -901,6 +901,6 @@ public class SetActionTest {
}
private void logInAsProjectAdministrator(ComponentDto project) {
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
}
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ValuesActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ValuesActionTest.java
index 35e0adda7a9..a959bbf645b 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ValuesActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/setting/ws/ValuesActionTest.java
@@ -561,8 +561,8 @@ public class ValuesActionTest {
@Test
public void return_component_secured_settings_when_not_authenticated_but_with_scan_permission() throws Exception {
userSession
- .addProjectUuidPermissions(USER, project.uuid())
- .addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ .addProjectPermission(USER, project)
+ .addProjectPermission(SCAN_EXECUTION, project);
definitions.addComponents(asList(
PropertyDefinition.builder("foo").onQualifiers(PROJECT).build(),
PropertyDefinition.builder("global.secret.secured").build(),
@@ -586,8 +586,8 @@ public class ValuesActionTest {
@Test
public void return_component_secured_settings_even_if_not_defined_when_not_authenticated_but_with_scan_permission() throws Exception {
userSession
- .addProjectUuidPermissions(USER, project.uuid())
- .addProjectUuidPermissions(SCAN_EXECUTION, project.uuid());
+ .addProjectPermission(USER, project)
+ .addProjectPermission(SCAN_EXECUTION, project);
propertyDb.insertProperties(newComponentPropertyDto(project).setKey("not-defined.secured").setValue("123"));
ValuesWsResponse result = executeRequestForProjectProperties("not-defined.secured");
@@ -728,7 +728,7 @@ public class ValuesActionTest {
@Test
public void fail_when_user_has_not_project_browse_permission() throws Exception {
- userSession.logIn("project-admin").addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSession.logIn("project-admin").addProjectPermission(CODEVIEWER, project);
definitions.addComponent(PropertyDefinition.builder("foo").build());
expectedException.expect(ForbiddenException.class);
@@ -818,7 +818,7 @@ public class ValuesActionTest {
}
private void logInAsProjectUser() {
- userSession.logIn().addProjectUuidPermissions(USER, project.uuid());
+ userSession.logIn().addProjectPermission(USER, project);
}
private void logInAsAdmin() {
@@ -827,8 +827,8 @@ public class ValuesActionTest {
private void logInAsProjectAdmin() {
userSession.logIn()
- .addProjectUuidPermissions(ADMIN, project.uuid())
- .addProjectUuidPermissions(USER, project.uuid());
+ .addProjectPermission(ADMIN, project)
+ .addProjectPermission(USER, project);
}
private void assertSetting(Settings.Setting setting, String expectedKey, String expectedValue, boolean expectedInherited) {
diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java
index d63d24042a8..9f82b15bddb 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java
@@ -62,7 +62,7 @@ public class HashActionTest {
@Test
public void show_hashes() throws Exception {
db.prepareDbUnit(getClass(), "shared.xml");
- userSessionRule.logIn("polop").addProjectUuidPermissions(UserRole.USER, PROJECT_UUID);
+ loginAndAddProjectPermission(PROJECT_UUID, UserRole.USER);
WsTester.TestRequest request = tester.newGetRequest("api/sources", "hash").setParam("key", COMPONENT_KEY);
assertThat(request.execute().outputAsString()).isEqualTo("987654");
@@ -71,7 +71,7 @@ public class HashActionTest {
@Test
public void show_hashes_on_test_file() throws Exception {
db.prepareDbUnit(getClass(), "show_hashes_on_test_file.xml");
- userSessionRule.logIn("polop").addProjectUuidPermissions(UserRole.USER, PROJECT_UUID);
+ loginAndAddProjectPermission(PROJECT_UUID, UserRole.USER);
WsTester.TestRequest request = tester.newGetRequest("api/sources", "hash").setParam("key", "ActionTest.java");
assertThat(request.execute().outputAsString()).isEqualTo("987654");
@@ -80,7 +80,7 @@ public class HashActionTest {
@Test
public void hashes_empty_if_no_source() throws Exception {
db.prepareDbUnit(getClass(), "no_source.xml");
- userSessionRule.logIn("polop").addProjectUuidPermissions(UserRole.USER, PROJECT_UUID);
+ loginAndAddProjectPermission(PROJECT_UUID, UserRole.USER);
WsTester.TestRequest request = tester.newGetRequest("api/sources", "hash").setParam("key", COMPONENT_KEY);
request.execute().assertNoContent();
@@ -88,7 +88,6 @@ public class HashActionTest {
@Test
public void fail_to_show_hashes_if_file_does_not_exist() {
- userSessionRule.logIn("polop").addProjectUuidPermissions(UserRole.USER, PROJECT_UUID);
try {
WsTester.TestRequest request = tester.newGetRequest("api/sources", "hash").setParam("key", COMPONENT_KEY);
request.execute();
@@ -105,4 +104,8 @@ public class HashActionTest {
userSessionRule.logIn("polop");
tester.newGetRequest("api/sources", "hash").setParam("key", COMPONENT_KEY).execute();
}
+
+ private void loginAndAddProjectPermission(String componentUuid, String permission) {
+ userSessionRule.logIn("polop").addProjectPermission(permission, db.getDbClient().componentDao().selectByUuid(db.getSession(), componentUuid).get());
+ }
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/IndexActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/IndexActionTest.java
index 1a8b0d8d0a2..43c58740d31 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/IndexActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/IndexActionTest.java
@@ -59,7 +59,7 @@ public class IndexActionTest {
@Test
public void get_json() throws Exception {
ComponentDto project = db.components().insertProject();
- userSession.addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSession.addProjectPermission(CODEVIEWER, project);
ComponentDto file = db.components().insertComponent(newFileDto(project));
insertFileWithData(file, newData("public class HelloWorld {", "}"));
@@ -78,7 +78,7 @@ public class IndexActionTest {
@Test
public void limit_range() throws Exception {
ComponentDto project = db.components().insertProject();
- userSession.addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSession.addProjectPermission(CODEVIEWER, project);
ComponentDto file = db.components().insertComponent(newFileDto(project));
insertFileWithData(file, newData("/**", " */", "public class HelloWorld {", "}", "", "foo"));
@@ -99,7 +99,7 @@ public class IndexActionTest {
@Test
public void fail_when_missing_code_viewer_permission() throws Exception {
ComponentDto project = db.components().insertProject();
- userSession.addProjectUuidPermissions(USER, project.uuid());
+ userSession.addProjectPermission(USER, project);
ComponentDto file = db.components().insertComponent(newFileDto(project));
expectedException.expect(ForbiddenException.class);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/LinesActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/LinesActionTest.java
index d7a8d1fcc9b..cabdda93a86 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/LinesActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/LinesActionTest.java
@@ -63,11 +63,12 @@ public class LinesActionTest {
public UserSessionRule userSessionRule = UserSessionRule.standalone();
SourceService sourceService;
-
HtmlSourceDecorator htmlSourceDecorator;
-
ComponentDao componentDao;
+ ComponentDto project;
+ ComponentDto file;
+
WsTester wsTester;
@Before
@@ -83,12 +84,14 @@ public class LinesActionTest {
componentDao = new ComponentDao();
wsTester = new WsTester(new SourcesWs(
new LinesAction(new ComponentFinder(dbTester.getDbClient()), dbTester.getDbClient(), sourceService, htmlSourceDecorator, userSessionRule)));
+ project = ComponentTesting.newProjectDto(dbTester.organizations().insert(), PROJECT_UUID);
+ file = ComponentTesting.newFileDto(project, null, FILE_UUID).setKey(FILE_KEY);
}
@Test
public void show_source() throws Exception {
- setUserWithValidPermission();
insertFileWithData(FileSourceTesting.newFakeData(3).build());
+ setUserWithValidPermission();
WsTester.TestRequest request = wsTester.newGetRequest("api/sources", "lines").setParam("uuid", FILE_UUID);
request.execute().assertJson(getClass(), "show_source.json");
@@ -156,8 +159,8 @@ public class LinesActionTest {
@Test
public void display_deprecated_fields() throws Exception {
- setUserWithValidPermission();
insertFileWithData(FileSourceTesting.newFakeData(1).build());
+ setUserWithValidPermission();
WsTester.TestRequest request = wsTester
.newGetRequest("api/sources", "lines")
@@ -168,7 +171,6 @@ public class LinesActionTest {
@Test
public void use_deprecated_overall_coverage_fields_if_exists() throws Exception {
- setUserWithValidPermission();
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder();
insertFileWithData(dataBuilder.addLines(newLineBuilder()
.setDeprecatedOverallLineHits(1)
@@ -180,6 +182,7 @@ public class LinesActionTest {
.setDeprecatedItLineHits(1)
.setDeprecatedItConditions(2)
.setDeprecatedItCoveredConditions(3)).build());
+ setUserWithValidPermission();
WsTester.TestRequest request = wsTester
.newGetRequest("api/sources", "lines")
@@ -190,7 +193,6 @@ public class LinesActionTest {
@Test
public void use_deprecated_ut_coverage_fields_if_exists() throws Exception {
- setUserWithValidPermission();
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder();
insertFileWithData(dataBuilder.addLines(newLineBuilder()
.setDeprecatedUtLineHits(1)
@@ -199,6 +201,7 @@ public class LinesActionTest {
.setDeprecatedItLineHits(1)
.setDeprecatedItConditions(2)
.setDeprecatedItCoveredConditions(3)).build());
+ setUserWithValidPermission();
WsTester.TestRequest request = wsTester
.newGetRequest("api/sources", "lines")
@@ -209,12 +212,12 @@ public class LinesActionTest {
@Test
public void use_deprecated_it_coverage_fields_if_exists() throws Exception {
- setUserWithValidPermission();
DbFileSources.Data.Builder dataBuilder = DbFileSources.Data.newBuilder();
insertFileWithData(dataBuilder.addLines(newLineBuilder()
.setDeprecatedItLineHits(1)
.setDeprecatedItConditions(2)
.setDeprecatedItCoveredConditions(3)).build());
+ setUserWithValidPermission();
WsTester.TestRequest request = wsTester
.newGetRequest("api/sources", "lines")
@@ -233,12 +236,10 @@ public class LinesActionTest {
}
private void setUserWithValidPermission() {
- userSessionRule.logIn("login").addProjectUuidPermissions(UserRole.CODEVIEWER, PROJECT_UUID);
+ userSessionRule.logIn("login").addProjectPermission(UserRole.CODEVIEWER, project, file);
}
private void insertFile() throws IOException {
- ComponentDto project = ComponentTesting.newProjectDto(dbTester.organizations().insert(), PROJECT_UUID);
- ComponentDto file = ComponentTesting.newFileDto(project, null, FILE_UUID).setKey(FILE_KEY);
componentDao.insert(dbTester.getSession(), project, file);
dbTester.getSession().commit();
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/RawActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/RawActionTest.java
index eb785d10ce7..e0e44c65cc6 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/RawActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/RawActionTest.java
@@ -76,7 +76,7 @@ public class RawActionTest {
@Test
public void get_txt() throws Exception {
String fileKey = "src/Foo.java";
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project);
when(componentDao.selectByKey(session, fileKey)).thenReturn(com.google.common.base.Optional.of(file));
Iterable<String> lines = newArrayList(
diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/ScmActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/ScmActionTest.java
index 998bbc1a21a..6fc112242cf 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/ScmActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/ScmActionTest.java
@@ -55,17 +55,23 @@ public class ScmActionTest {
private WsTester tester;
private DbClient dbClient = dbTester.getDbClient();
private DbSession dbSession = dbTester.getSession();
+ private ComponentDto project;
+ private ComponentDto file;
@Before
public void setUp() {
tester = new WsTester(
new SourcesWs(new ScmAction(dbClient, new SourceService(dbTester.getDbClient(), new HtmlSourceDecorator()), userSessionRule, new ComponentFinder(dbClient))));
+
+ project = ComponentTesting.newProjectDto(dbTester.organizations().insert(), PROJECT_UUID);
+ file = ComponentTesting.newFileDto(project, null, FILE_UUID).setKey(FILE_KEY);
+ dbClient.componentDao().insert(dbTester.getSession(), project, file);
+ dbTester.getSession().commit();
}
@Test
public void show_scm() throws Exception {
- initFile();
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, PROJECT_UUID);
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project, file);
dbTester.getDbClient().fileSourceDao().insert(dbSession, new FileSourceDto()
.setProjectUuid(PROJECT_UUID)
@@ -80,8 +86,7 @@ public class ScmActionTest {
@Test
public void show_scm_from_given_range_lines() throws Exception {
- initFile();
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, PROJECT_UUID);
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project, file);
dbTester.getDbClient().fileSourceDao().insert(dbSession, new FileSourceDto()
.setProjectUuid(PROJECT_UUID)
@@ -100,8 +105,7 @@ public class ScmActionTest {
@Test
public void not_group_lines_by_commit() throws Exception {
- initFile();
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, PROJECT_UUID);
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project, file);
// lines 1 and 2 are the same commit, but not 3 (different date)
dbTester.getDbClient().fileSourceDao().insert(dbSession, new FileSourceDto()
@@ -122,8 +126,7 @@ public class ScmActionTest {
@Test
public void group_lines_by_commit() throws Exception {
- initFile();
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, PROJECT_UUID);
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project, file);
// lines 1 and 2 are the same commit, but not 3 (different date)
dbTester.getDbClient().fileSourceDao().insert(dbSession, new FileSourceDto()
@@ -144,8 +147,7 @@ public class ScmActionTest {
@Test
public void accept_negative_value_in_from_parameter() throws Exception {
- initFile();
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, PROJECT_UUID);
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project, file);
dbTester.getDbClient().fileSourceDao().insert(dbSession, new FileSourceDto()
.setProjectUuid(PROJECT_UUID)
@@ -165,8 +167,7 @@ public class ScmActionTest {
@Test
public void return_empty_value_when_no_scm() throws Exception {
- initFile();
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, PROJECT_UUID);
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project, file);
dbTester.getDbClient().fileSourceDao().insert(dbSession, new FileSourceDto()
.setProjectUuid(PROJECT_UUID)
@@ -180,19 +181,12 @@ public class ScmActionTest {
@Test(expected = ForbiddenException.class)
public void fail_without_code_viewer_permission() throws Exception {
- initFile();
- userSessionRule.addProjectUuidPermissions(UserRole.USER, PROJECT_UUID);
+ userSessionRule.addProjectPermission(UserRole.USER, project, file);
WsTester.TestRequest request = tester.newGetRequest("api/sources", "scm").setParam("key", FILE_KEY);
request.execute();
}
- private void initFile() {
- ComponentDto project = ComponentTesting.newProjectDto(dbTester.organizations().insert(), PROJECT_UUID);
- dbClient.componentDao().insert(dbTester.getSession(), project, ComponentTesting.newFileDto(project, null, FILE_UUID).setKey(FILE_KEY));
- dbTester.getSession().commit();
- }
-
private DbFileSources.Line newSourceLine(String author, String revision, Date date, int line) {
return DbFileSources.Line.newBuilder()
.setScmAuthor(author)
diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/ShowActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/ShowActionTest.java
index f99eb8a6b48..2d88ec0e59a 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/ShowActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/ShowActionTest.java
@@ -78,7 +78,7 @@ public class ShowActionTest {
@Test
public void show_source() throws Exception {
String fileKey = "src/Foo.java";
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project);
when(componentDao.selectByKey(session, fileKey)).thenReturn(com.google.common.base.Optional.of(file));
when(sourceService.getLinesAsHtml(eq(session), eq(file.uuid()), anyInt(), anyInt())).thenReturn(Optional.of(newArrayList(
"/*",
@@ -95,7 +95,7 @@ public class ShowActionTest {
@Test
public void show_source_with_from_and_to_params() throws Exception {
String fileKey = "src/Foo.java";
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project);
when(componentDao.selectByKey(session, fileKey)).thenReturn(com.google.common.base.Optional.of(file));
when(sourceService.getLinesAsHtml(session, file.uuid(), 3, 5)).thenReturn(Optional.of(newArrayList(
" */",
@@ -112,7 +112,7 @@ public class ShowActionTest {
@Test
public void show_source_accept_from_less_than_one() throws Exception {
String fileKey = "src/Foo.java";
- userSessionRule.addProjectUuidPermissions(UserRole.CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project);
when(componentDao.selectByKey(session, fileKey)).thenReturn(com.google.common.base.Optional.of(file));
when(sourceService.getLinesAsHtml(session, file.uuid(), 1, 5)).thenReturn(Optional.of(newArrayList(
" */",
diff --git a/server/sonar-server/src/test/java/org/sonar/server/test/ws/CoveredFilesActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/test/ws/CoveredFilesActionTest.java
index cc7f58e8e29..20dbef657aa 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/test/ws/CoveredFilesActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/test/ws/CoveredFilesActionTest.java
@@ -28,6 +28,8 @@ import org.junit.rules.ExpectedException;
import org.sonar.api.web.UserRole;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
+import org.sonar.db.component.ComponentDto;
+import org.sonar.db.component.ComponentTesting;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.organization.OrganizationTesting;
import org.sonar.server.exceptions.NotFoundException;
@@ -51,17 +53,17 @@ import static org.sonar.test.JsonAssert.assertJson;
public class CoveredFilesActionTest {
- public static final String FILE_1_ID = "FILE1";
- public static final String FILE_2_ID = "FILE2";
+ private static final String FILE_1_ID = "FILE1";
+ private static final String FILE_2_ID = "FILE2";
@Rule
public UserSessionRule userSessionRule = UserSessionRule.standalone();
@Rule
public ExpectedException expectedException = ExpectedException.none();
- WsActionTester ws;
- DbClient dbClient;
- TestIndex testIndex;
+ private WsActionTester ws;
+ private DbClient dbClient;
+ private TestIndex testIndex;
@Before
public void setUp() {
@@ -73,7 +75,9 @@ public class CoveredFilesActionTest {
@Test
public void covered_files() {
- userSessionRule.addComponentUuidPermission(UserRole.CODEVIEWER, "SonarQube", "test-file-uuid");
+ ComponentDto project = ComponentTesting.newProjectDto(OrganizationTesting.newOrganizationDto(), "SonarQube");
+ ComponentDto file = ComponentTesting.newFileDto(project, null, "test-file-uuid");
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project, file);
when(testIndex.getNullableByTestUuid(anyString())).thenReturn(Optional.of(new TestDoc().setFileUuid("test-file-uuid")));
when(testIndex.coveredFiles("test-uuid")).thenReturn(Arrays.asList(
@@ -92,7 +96,9 @@ public class CoveredFilesActionTest {
@Test
public void fail_when_test_uuid_is_unknown() {
- userSessionRule.addComponentUuidPermission(UserRole.CODEVIEWER, "SonarQube", "test-file-uuid");
+ ComponentDto project = ComponentTesting.newProjectDto(OrganizationTesting.newOrganizationDto(), "SonarQube");
+ ComponentDto file = ComponentTesting.newFileDto(project);
+ userSessionRule.addProjectPermission(UserRole.CODEVIEWER, project, file);
when(testIndex.getNullableByTestUuid(anyString())).thenReturn(Optional.<TestDoc>absent());
when(testIndex.coveredFiles("test-uuid")).thenReturn(Arrays.asList(
diff --git a/server/sonar-server/src/test/java/org/sonar/server/test/ws/ListActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/test/ws/ListActionTest.java
index 15acd7da032..208f02dbd9a 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/test/ws/ListActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/test/ws/ListActionTest.java
@@ -89,7 +89,7 @@ public class ListActionTest {
@Test
public void list_tests() throws Exception {
- userSessionRule.addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(CODEVIEWER, project);
DbFileSources.Test test = newTest(mainFile, 10, 11, 12, 20, 21, 25).setStatus(OK).build();
insertTests(testFile, test);
@@ -111,7 +111,7 @@ public class ListActionTest {
@Test
public void list_tests_by_test_uuid() throws Exception {
- userSessionRule.addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(CODEVIEWER, project);
DbFileSources.Test test1 = newTest(mainFile, 10).build();
DbFileSources.Test test2 = newTest(mainFile, 11).build();
insertTests(testFile, test1, test2);
@@ -123,7 +123,7 @@ public class ListActionTest {
@Test
public void list_tests_by_test_file_uuid() throws Exception {
- userSessionRule.addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(CODEVIEWER, project);
ComponentDto anotherTestFile = db.components().insertComponent(newFileDto(project));
DbFileSources.Test test1 = newTest(mainFile, 10).build();
DbFileSources.Test test2 = newTest(mainFile, 11).build();
@@ -138,7 +138,7 @@ public class ListActionTest {
@Test
public void list_tests_by_test_file_key() throws Exception {
- userSessionRule.addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(CODEVIEWER, project);
ComponentDto anotherTestFile = db.components().insertComponent(newFileDto(project));
DbFileSources.Test test1 = newTest(mainFile, 10).build();
DbFileSources.Test test2 = newTest(mainFile, 11).build();
@@ -153,7 +153,7 @@ public class ListActionTest {
@Test
public void list_tests_by_source_file_uuid_and_line_number() throws Exception {
- userSessionRule.addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(CODEVIEWER, project);
ComponentDto anotherMainFile = db.components().insertComponent(newFileDto(project));
DbFileSources.Test test1 = newTest(mainFile, 10, 11, 12).build();
DbFileSources.Test test2 = newTest(mainFile, 9, 11).build();
@@ -168,7 +168,7 @@ public class ListActionTest {
@Test
public void list_tests_by_source_file_key_and_line_number() throws Exception {
- userSessionRule.addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(CODEVIEWER, project);
ComponentDto anotherMainFile = db.components().insertComponent(newFileDto(project));
DbFileSources.Test test1 = newTest(mainFile, 10, 11, 12).build();
DbFileSources.Test test2 = newTest(mainFile, 9, 11).build();
@@ -183,7 +183,7 @@ public class ListActionTest {
@Test
public void tests_are_paginated() throws Exception {
- userSessionRule.addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(CODEVIEWER, project);
insertTests(testFile, newTest(mainFile, 10).build(), newTest(mainFile, 11).build(), newTest(mainFile, 12).build());
ListResponse request = call(ws.newRequest().setParam(TEST_FILE_ID, testFile.uuid()));
@@ -195,7 +195,7 @@ public class ListActionTest {
@Test
public void fail_when_no_argument() throws Exception {
- userSessionRule.addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(CODEVIEWER, project);
expectedException.expect(IllegalArgumentException.class);
call(ws.newRequest());
@@ -203,7 +203,7 @@ public class ListActionTest {
@Test
public void fail_when_source_file_uuid_without_line_number() throws Exception {
- userSessionRule.addProjectUuidPermissions(CODEVIEWER, project.uuid());
+ userSessionRule.addProjectPermission(CODEVIEWER, project);
expectedException.expect(IllegalArgumentException.class);
call(ws.newRequest().setParam(SOURCE_FILE_ID, mainFile.uuid()));
@@ -211,7 +211,7 @@ public class ListActionTest {
@Test
public void fail_when_not_enough_privilege_on_test_uuid() throws Exception {
- userSessionRule.addProjectUuidPermissions(USER, project.uuid());
+ userSessionRule.addProjectPermission(USER, project);
DbFileSources.Test test = newTest(mainFile, 10).build();
insertTests(testFile, test);
@@ -221,7 +221,7 @@ public class ListActionTest {
@Test
public void fail_when_no_enough_privilege_on_test_file_id() throws Exception {
- userSessionRule.addProjectUuidPermissions(USER, project.uuid());
+ userSessionRule.addProjectPermission(USER, project);
insertTests(testFile, newTest(mainFile, 10).build());
expectedException.expect(ForbiddenException.class);
@@ -230,7 +230,7 @@ public class ListActionTest {
@Test
public void fail_when_not_enough_privilege_on_test_file_key() throws Exception {
- userSessionRule.addProjectUuidPermissions(USER, project.uuid());
+ userSessionRule.addProjectPermission(USER, project);
insertTests(testFile, newTest(mainFile, 10).build());
expectedException.expect(ForbiddenException.class);
@@ -239,7 +239,7 @@ public class ListActionTest {
@Test
public void fail_when_not_enough_privilege_on_main_file_uuid() throws Exception {
- userSessionRule.addProjectUuidPermissions(USER, project.uuid());
+ userSessionRule.addProjectPermission(USER, project);
insertTests(testFile, newTest(mainFile, 10).build());
expectedException.expect(ForbiddenException.class);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/tester/AbstractMockUserSession.java b/server/sonar-server/src/test/java/org/sonar/server/tester/AbstractMockUserSession.java
index 0f0b60ef6d3..c4f88e935b5 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/tester/AbstractMockUserSession.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/tester/AbstractMockUserSession.java
@@ -20,13 +20,15 @@
package org.sonar.server.tester;
import com.google.common.collect.HashMultimap;
-import java.util.List;
+import java.util.Arrays;
+import java.util.HashSet;
import java.util.Map;
import java.util.Optional;
+import java.util.Set;
+import org.sonar.db.component.ComponentDto;
import org.sonar.db.permission.OrganizationPermission;
import org.sonar.server.user.AbstractUserSession;
-import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Maps.newHashMap;
public abstract class AbstractMockUserSession<T extends AbstractMockUserSession> extends AbstractUserSession {
@@ -34,7 +36,7 @@ public abstract class AbstractMockUserSession<T extends AbstractMockUserSession>
private HashMultimap<String, String> projectUuidByPermission = HashMultimap.create();
private final HashMultimap<String, OrganizationPermission> permissionsByOrganizationUuid = HashMultimap.create();
private Map<String, String> projectUuidByComponentUuid = newHashMap();
- private List<String> projectPermissionsCheckedByUuid = newArrayList();
+ private Set<String> projectPermissionsCheckedByUuid = new HashSet<>();
private boolean systemAdministrator = false;
protected AbstractMockUserSession(Class<T> clazz) {
@@ -51,22 +53,16 @@ public abstract class AbstractMockUserSession<T extends AbstractMockUserSession>
return permissionsByOrganizationUuid.get(organizationUuid).contains(permission);
}
-
- public T addProjectUuidPermissions(String projectPermission, String... projectUuids) {
- this.projectPermissionsCheckedByUuid.add(projectPermission);
- this.projectUuidByPermission.putAll(projectPermission, newArrayList(projectUuids));
- for (String projectUuid : projectUuids) {
- this.projectUuidByComponentUuid.put(projectUuid, projectUuid);
- }
+ public T addProjectPermission(String permission, ComponentDto... components) {
+ this.projectPermissionsCheckedByUuid.add(permission);
+ Arrays.stream(components)
+ .forEach(component -> {
+ this.projectUuidByPermission.put(permission, component.projectUuid());
+ this.projectUuidByComponentUuid.put(component.uuid(), component.projectUuid());
+ });
return clazz.cast(this);
}
- public T addComponentUuidPermission(String projectPermission, String projectUuid, String componentUuid) {
- this.projectUuidByComponentUuid.put(componentUuid, projectUuid);
- addProjectUuidPermissions(projectPermission, projectUuid);
- return clazz.cast(this);
- }
-
@Override
protected Optional<String> componentUuidToProjectUuid(String componentUuid) {
return Optional.ofNullable(projectUuidByComponentUuid.get(componentUuid));
diff --git a/server/sonar-server/src/test/java/org/sonar/server/tester/UserSessionRule.java b/server/sonar-server/src/test/java/org/sonar/server/tester/UserSessionRule.java
index 6e58b4074b0..5e10fa04489 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/tester/UserSessionRule.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/tester/UserSessionRule.java
@@ -28,9 +28,9 @@ import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.organization.OrganizationDto;
+import org.sonar.db.permission.OrganizationPermission;
import org.sonar.db.user.GroupDto;
import org.sonar.db.user.UserDto;
-import org.sonar.db.permission.OrganizationPermission;
import org.sonar.server.user.ThreadLocalUserSession;
import org.sonar.server.user.UserSession;
@@ -187,8 +187,8 @@ public class UserSessionRule implements TestRule, UserSession {
setCurrentUserSession(userSession);
}
- public UserSessionRule addProjectUuidPermissions(String projectPermission, String... projectUuids) {
- ensureAbstractMockUserSession().addProjectUuidPermissions(projectPermission, projectUuids);
+ public UserSessionRule addProjectPermission(String projectPermission, ComponentDto... components) {
+ ensureAbstractMockUserSession().addProjectPermission(projectPermission, components);
return this;
}
@@ -216,11 +216,6 @@ public class UserSessionRule implements TestRule, UserSession {
return this;
}
- public UserSessionRule addComponentUuidPermission(String projectPermission, String projectUuid, String componentUuid) {
- ensureAbstractMockUserSession().addComponentUuidPermission(projectPermission, projectUuid, componentUuid);
- return this;
- }
-
public UserSessionRule setName(@Nullable String s) {
ensureMockUserSession().setName(s);
return this;
diff --git a/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java
index e6dad613f9e..06d4d326370 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentActionTest.java
@@ -131,7 +131,7 @@ public class ComponentActionTest {
public void return_info_if_user_has_browse_permission_on_project() throws Exception {
init();
componentDbTester.insertComponent(project);
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
verifySuccess(project.key());
}
@@ -140,7 +140,7 @@ public class ComponentActionTest {
public void return_info_if_user_has_administration_permission_on_project() throws Exception {
init();
componentDbTester.insertComponent(project);
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
verifySuccess(project.key());
}
@@ -158,7 +158,7 @@ public class ComponentActionTest {
public void return_component_info_when_anonymous_no_snapshot() throws Exception {
init();
componentDbTester.insertComponent(project);
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
executeAndVerify(project.key(), "return_component_info_when_anonymous_no_snapshot.json");
}
@@ -169,7 +169,7 @@ public class ComponentActionTest {
UserDto user = dbTester.users().insertUser("obiwan");
componentDbTester.insertComponent(project);
propertyDbTester.insertProperty(new PropertyDto().setKey("favourite").setResourceId(project.getId()).setUserId(user.getId()));
- userSession.logIn(user).addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn(user).addProjectPermission(UserRole.USER, project);
executeAndVerify(project.key(), "return_component_info_with_favourite.json");
}
@@ -182,7 +182,7 @@ public class ComponentActionTest {
.setCreatedAt(DateUtils.parseDateTime("2015-04-22T11:44:00+0200").getTime())
.setVersion("3.14")
.setLast(true));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
executeAndVerify(project.key(), "return_component_info_when_snapshot.json");
}
@@ -195,7 +195,7 @@ public class ComponentActionTest {
addQualityProfiles(project, analysis,
createQProfile("qp1", "Sonar Way Java", "java"),
createQProfile("qp2", "Sonar Way Xoo", "xoo"));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
executeAndVerify(project.key(), "return_quality_profiles.json");
}
@@ -204,7 +204,7 @@ public class ComponentActionTest {
public void return_empty_quality_profiles_when_no_measure() throws Exception {
init();
componentDbTester.insertComponent(project);
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
executeAndVerify(project.key(), "return_empty_quality_profiles_when_no_measure.json");
}
@@ -215,7 +215,7 @@ public class ComponentActionTest {
componentDbTester.insertComponent(project);
QualityGateDto qualityGateDto = dbTester.qualityGates().insertQualityGate("Sonar way");
dbTester.qualityGates().associateProjectToQualityGate(project, qualityGateDto);
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
executeAndVerify(project.key(), "return_quality_gate.json");
}
@@ -225,7 +225,7 @@ public class ComponentActionTest {
init();
componentDbTester.insertComponent(project);
dbTester.qualityGates().createDefaultQualityGate("Sonar way");
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
executeAndVerify(project.key(), "return_default_quality_gate.json");
}
@@ -234,7 +234,7 @@ public class ComponentActionTest {
public void return_no_quality_gate_when_not_defined_on_project_and_no_default_one() throws Exception {
init();
componentDbTester.insertComponent(project);
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
String json = execute(project.key());
assertThat(json).doesNotContain("qualityGate");
@@ -244,7 +244,7 @@ public class ComponentActionTest {
public void return_extensions() throws Exception {
init(createPages());
componentDbTester.insertComponent(project);
- userSession.anonymous().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.anonymous().addProjectPermission(UserRole.USER, project);
executeAndVerify(project.key(), "return_extensions.json");
}
@@ -254,8 +254,8 @@ public class ComponentActionTest {
init(createPages());
componentDbTester.insertComponent(project);
userSession.anonymous()
- .addProjectUuidPermissions(UserRole.USER, project.uuid())
- .addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ .addProjectPermission(UserRole.USER, project)
+ .addProjectPermission(UserRole.ADMIN, project);
executeAndVerify(project.key(), "return_extensions_for_admin.json");
}
@@ -265,8 +265,8 @@ public class ComponentActionTest {
UserDto user = dbTester.users().insertUser();
componentDbTester.insertComponent(project);
userSession.logIn(user)
- .addProjectUuidPermissions(UserRole.USER, "abcd")
- .addProjectUuidPermissions(UserRole.ADMIN, "abcd");
+ .addProjectPermission(UserRole.USER, project)
+ .addProjectPermission(UserRole.ADMIN, project);
Page page1 = Page.builder("my_plugin/first_page")
.setName("First Page")
@@ -290,8 +290,8 @@ public class ComponentActionTest {
init();
componentDbTester.insertComponent(project);
userSession.anonymous()
- .addProjectUuidPermissions(UserRole.USER, "abcd")
- .addProjectUuidPermissions(UserRole.ADMIN, "abcd");
+ .addProjectPermission(UserRole.USER, project)
+ .addProjectPermission(UserRole.ADMIN, project);
ResourceType projectResourceType = ResourceType.builder(project.qualifier())
.setProperty("comparable", true)
@@ -313,8 +313,8 @@ public class ComponentActionTest {
ComponentDto project = componentDbTester.insertComponent(this.project);
ComponentDto module = componentDbTester.insertComponent(newModuleDto("bcde", project).setKey("palap").setName("Palap"));
userSession.anonymous()
- .addProjectUuidPermissions(UserRole.USER, "abcd")
- .addProjectUuidPermissions(UserRole.ADMIN, "abcd");
+ .addProjectPermission(UserRole.USER, project)
+ .addProjectPermission(UserRole.ADMIN, project);
executeAndVerify(module.key(), "return_breadcrumbs_on_module.json");
}
@@ -324,7 +324,7 @@ public class ComponentActionTest {
init();
componentDbTester.insertComponent(project);
userSession.logIn()
- .addProjectUuidPermissions(UserRole.USER, project.uuid())
+ .addProjectPermission(UserRole.USER, project)
.addPermission(ADMINISTER_QUALITY_PROFILES, project.getOrganizationUuid());
executeAndVerify(project.key(), "return_configuration_for_quality_profile_admin.json");
@@ -335,7 +335,7 @@ public class ComponentActionTest {
init();
componentDbTester.insertComponent(project);
userSession.logIn()
- .addProjectUuidPermissions(UserRole.USER, project.uuid())
+ .addProjectPermission(UserRole.USER, project)
.addPermission(ADMINISTER_QUALITY_GATES, project.getOrganizationUuid());
executeAndVerify(project.key(), "return_configuration_for_quality_gate_admin.json");
@@ -350,7 +350,7 @@ public class ComponentActionTest {
ComponentDto file = componentDbTester.insertComponent(newFileDto(directory, directory, "cdef").setName("Source.xoo")
.setKey("palap:src/main/xoo/Source.xoo")
.setPath(directory.path()));
- userSession.addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.addProjectPermission(UserRole.USER, project);
executeAndVerify(file.key(), "return_bread_crumbs_on_several_levels.json");
}
@@ -359,7 +359,7 @@ public class ComponentActionTest {
public void project_administrator_is_allowed_to_get_information() throws Exception {
init(createPages());
componentDbTester.insertProjectAndSnapshot(project);
- userSession.addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.addProjectPermission(UserRole.ADMIN, project);
execute(project.key());
}
@@ -387,8 +387,8 @@ public class ComponentActionTest {
QualityGateDto qualityGateDto = dbTester.qualityGates().insertQualityGate("Sonar way");
dbTester.qualityGates().associateProjectToQualityGate(project, qualityGateDto);
userSession.logIn(user)
- .addProjectUuidPermissions(UserRole.USER, project.uuid())
- .addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ .addProjectPermission(UserRole.USER, project)
+ .addProjectPermission(UserRole.ADMIN, project);
String result = execute(project.key());
assertJson(result).ignoreFields("snapshotDate", "key", "qualityGate.key").isSimilarTo(ws.getDef().responseExampleAsString());
@@ -401,12 +401,12 @@ public class ComponentActionTest {
ComponentDto project = dbTester.components().insertProject(org);
userSession.logIn()
- .addProjectUuidPermissions(UserRole.ADMIN, project.uuid())
+ .addProjectPermission(UserRole.ADMIN, project)
.addPermission(OrganizationPermission.ADMINISTER, org);
assertJson(execute(project.key())).isSimilarTo("{\"configuration\": {\"canApplyPermissionTemplate\": true}}");
userSession.logIn()
- .addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ .addProjectPermission(UserRole.ADMIN, project);
assertJson(execute(project.key())).isSimilarTo("{\"configuration\": {\"canApplyPermissionTemplate\": false}}");
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/webhook/ws/WebhookDeliveriesActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/webhook/ws/WebhookDeliveriesActionTest.java
index 776af78a28e..ba7bd3f157a 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/webhook/ws/WebhookDeliveriesActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/webhook/ws/WebhookDeliveriesActionTest.java
@@ -82,7 +82,7 @@ public class WebhookDeliveriesActionTest {
@Test
public void search_by_component_and_return_no_records() throws Exception {
- userSession.logIn().addProjectUuidPermissions(project.uuid(), UserRole.ADMIN);
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
Webhooks.DeliveriesWsResponse response = ws.newRequest()
.setParam("componentKey", project.getKey())
@@ -93,7 +93,7 @@ public class WebhookDeliveriesActionTest {
@Test
public void search_by_task_and_return_no_records() throws Exception {
- userSession.logIn().addProjectUuidPermissions(project.uuid(), UserRole.ADMIN);
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
Webhooks.DeliveriesWsResponse response = ws.newRequest()
.setParam("ceTaskId", "t1")
@@ -116,7 +116,7 @@ public class WebhookDeliveriesActionTest {
.setHttpStatus(200);
dbClient.webhookDeliveryDao().insert(db.getSession(), dto);
db.commit();
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
String json = ws.newRequest()
.setParam("componentKey", project.getKey())
@@ -135,7 +135,7 @@ public class WebhookDeliveriesActionTest {
dbClient.webhookDeliveryDao().insert(db.getSession(), dto2);
dbClient.webhookDeliveryDao().insert(db.getSession(), dto3);
db.commit();
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
Webhooks.DeliveriesWsResponse response = ws.newRequest()
.setParam("ceTaskId", "t1")
@@ -150,7 +150,7 @@ public class WebhookDeliveriesActionTest {
.setComponentUuid(project.uuid());
dbClient.webhookDeliveryDao().insert(db.getSession(), dto);
db.commit();
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
expectedException.expect(ForbiddenException.class);
expectedException.expectMessage("Insufficient privileges");
@@ -166,7 +166,7 @@ public class WebhookDeliveriesActionTest {
.setComponentUuid(project.uuid());
dbClient.webhookDeliveryDao().insert(db.getSession(), dto);
db.commit();
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
expectedException.expect(ForbiddenException.class);
expectedException.expectMessage("Insufficient privileges");
diff --git a/server/sonar-server/src/test/java/org/sonar/server/webhook/ws/WebhookDeliveryActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/webhook/ws/WebhookDeliveryActionTest.java
index 353ebe1773c..0c3bf8881fb 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/webhook/ws/WebhookDeliveryActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/webhook/ws/WebhookDeliveryActionTest.java
@@ -112,7 +112,7 @@ public class WebhookDeliveryActionTest {
.setPayload("{\"status\"=\"SUCCESS\"}");
dbClient.webhookDeliveryDao().insert(db.getSession(), dto);
db.commit();
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
String json = ws.newRequest()
.setParam("deliveryId", dto.getUuid())
@@ -132,7 +132,7 @@ public class WebhookDeliveryActionTest {
.setErrorStacktrace("IOException -> can not connect");
dbClient.webhookDeliveryDao().insert(db.getSession(), dto);
db.commit();
- userSession.logIn().addProjectUuidPermissions(UserRole.ADMIN, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
Webhooks.DeliveryWsResponse response = ws.newRequest()
.setParam("deliveryId", dto.getUuid())
@@ -150,7 +150,7 @@ public class WebhookDeliveryActionTest {
.setComponentUuid(project.uuid());
dbClient.webhookDeliveryDao().insert(db.getSession(), dto);
db.commit();
- userSession.logIn().addProjectUuidPermissions(UserRole.USER, project.uuid());
+ userSession.logIn().addProjectPermission(UserRole.USER, project);
expectedException.expect(ForbiddenException.class);
expectedException.expectMessage("Insufficient privileges");