aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-server/src
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-04-26 15:22:26 +0200
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-04-27 14:42:50 +0200
commit681ae7cfbd1672f468154f7ccc12245f72750382 (patch)
treeb8fb3a7b30352063c2851628d16a5b3b59ff3fc5 /server/sonar-server/src
parent174fdeb183d803faeab1b9266a0be25a076fe344 (diff)
downloadsonarqube-681ae7cfbd1672f468154f7ccc12245f72750382.tar.gz
sonarqube-681ae7cfbd1672f468154f7ccc12245f72750382.zip
SONAR-9159 support project visibility in api/permissions/remove_user
Diffstat (limited to 'server/sonar-server/src')
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/RemoveUserActionTest.java34
1 files changed, 34 insertions, 0 deletions
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 45c3d039abc..730f6bcdf9c 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
@@ -24,6 +24,7 @@ import org.junit.Test;
import org.sonar.api.web.UserRole;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.ComponentTesting;
+import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.user.UserDto;
import org.sonar.server.exceptions.BadRequestException;
import org.sonar.server.exceptions.ForbiddenException;
@@ -34,6 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.sonar.api.web.UserRole.ADMIN;
import static org.sonar.api.web.UserRole.CODEVIEWER;
import static org.sonar.api.web.UserRole.ISSUE_ADMIN;
+import static org.sonar.api.web.UserRole.USER;
import static org.sonar.core.permission.GlobalPermissions.PROVISIONING;
import static org.sonar.core.permission.GlobalPermissions.QUALITY_GATE_ADMIN;
import static org.sonar.core.permission.GlobalPermissions.SYSTEM_ADMIN;
@@ -277,4 +279,36 @@ public class RemoveUserActionTest extends BasePermissionWsTest<RemoveUserAction>
assertThat(db.users().selectProjectPermissionsOfUser(user, project)).containsOnly(CODEVIEWER);
}
+ @Test
+ public void fail_when_removing_USER_permission_on_a_public_project() {
+ OrganizationDto organization = db.organizations().insert();
+ ComponentDto project = db.components().insertPublicProject(organization);
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
+
+ expectedException.expect(BadRequestException.class);
+ expectedException.expectMessage("Permission user can't be removed from a public component");
+
+ newRequest()
+ .setParam(PARAM_USER_LOGIN, user.getLogin())
+ .setParam(PARAM_PROJECT_ID, project.uuid())
+ .setParam(PARAM_PERMISSION, USER)
+ .execute();
+ }
+
+ @Test
+ public void fail_when_removing_CODEVIEWER_permission_on_a_public_project() {
+ OrganizationDto organization = db.organizations().insert();
+ ComponentDto project = db.components().insertPublicProject(organization);
+ userSession.logIn().addProjectPermission(UserRole.ADMIN, project);
+
+ expectedException.expect(BadRequestException.class);
+ expectedException.expectMessage("Permission codeviewer can't be removed from a public component");
+
+ newRequest()
+ .setParam(PARAM_USER_LOGIN, user.getLogin())
+ .setParam(PARAM_PROJECT_ID, project.uuid())
+ .setParam(PARAM_PERMISSION, CODEVIEWER)
+ .execute();
+ }
+
}