aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server/src
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2013-06-29 19:07:40 +0200
committerSimon Brandhof <simon.brandhof@gmail.com>2013-06-29 19:07:40 +0200
commitb319c87ecf00b6c95b5dcb7924bdc8689b5153a0 (patch)
treed47b7d4e19848a3c22778b7a6b0466bdb9e9a1f7 /sonar-server/src
parent70b6abe27893c2bef042cce311e0e4d90654e23f (diff)
downloadsonarqube-b319c87ecf00b6c95b5dcb7924bdc8689b5153a0.tar.gz
sonarqube-b319c87ecf00b6c95b5dcb7924bdc8689b5153a0.zip
SONAR-4412 revert check of last remaining admin user
Diffstat (limited to 'sonar-server/src')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/permission/InternalPermissionService.java13
-rw-r--r--sonar-server/src/test/java/org/sonar/server/permission/InternalPermissionServiceTest.java26
2 files changed, 0 insertions, 39 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/permission/InternalPermissionService.java b/sonar-server/src/main/java/org/sonar/server/permission/InternalPermissionService.java
index 78e9a12393c..e2973b61a47 100644
--- a/sonar-server/src/main/java/org/sonar/server/permission/InternalPermissionService.java
+++ b/sonar-server/src/main/java/org/sonar/server/permission/InternalPermissionService.java
@@ -61,9 +61,6 @@ public class InternalPermissionService implements ServerComponent {
UserSession.get().checkPermission(Permissions.SYSTEM_ADMIN);
PermissionChangeQuery permissionChangeQuery = PermissionChangeQuery.buildFromParams(params);
if(permissionChangeQuery.isValid()) {
- if(Permissions.SYSTEM_ADMIN.equals(permissionChangeQuery.getRole()) && REMOVE.equals(permissionChange)) {
- checkThatAtLeastOneAdminRemains(permissionChangeQuery);
- }
applyPermissionChange(permissionChange, permissionChangeQuery);
} else {
String errorMsg = String.format("Request '%s permission %s' is invalid", permissionChange, permissionChangeQuery.getRole());
@@ -127,14 +124,4 @@ public class InternalPermissionService implements ServerComponent {
return (ADD.equals(operation) && existingPermissions.contains(role)) ||
(REMOVE.equals(operation) && !existingPermissions.contains(role));
}
-
- private void checkThatAtLeastOneAdminRemains(PermissionChangeQuery permissionChangeQuery) {
- int remainingSystemAdmins = roleDao.countSystemAdministrators(permissionChangeQuery.getGroup());
- if(remainingSystemAdmins == 0) {
- String errorMsg = String.format("Cannot remove permission %s to %s - At least one system administrator should remain active",
- permissionChangeQuery.getRole(), permissionChangeQuery.getUser() == null ? permissionChangeQuery.getGroup() : permissionChangeQuery.getUser());
- LOG.error(errorMsg);
- throw new BadRequestException(errorMsg);
- }
- }
}
diff --git a/sonar-server/src/test/java/org/sonar/server/permission/InternalPermissionServiceTest.java b/sonar-server/src/test/java/org/sonar/server/permission/InternalPermissionServiceTest.java
index d36d539e38c..34e3966bc31 100644
--- a/sonar-server/src/test/java/org/sonar/server/permission/InternalPermissionServiceTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/permission/InternalPermissionServiceTest.java
@@ -139,32 +139,6 @@ public class InternalPermissionServiceTest {
}
@Test
- public void should_prevent_last_admin_removal() throws Exception {
- throwable.expect(BadRequestException.class);
- params = buildParams("admin", null, Permissions.SYSTEM_ADMIN);
- when(roleDao.countSystemAdministrators(null)).thenReturn(0);
-
- service.removePermission(params);
- }
-
- @Test
- public void should_prevent_last_admin_group_removal() throws Exception {
- throwable.expect(BadRequestException.class);
- params = buildParams(null, "sonar-administrators", Permissions.SYSTEM_ADMIN);
- GroupDto adminGroups = new GroupDto().setId(2L).setName("sonar-administrators");
-
- roleDao = mock(RoleDao.class);
- when(roleDao.selectGroupPermissions("sonar-administrators")).thenReturn(Lists.newArrayList(Permissions.SYSTEM_ADMIN));
- when(roleDao.countSystemAdministrators("sonar-administrators")).thenReturn(0);
-
- userDao = mock(UserDao.class);
- when(userDao.selectGroupByName("sonar-administrators")).thenReturn(adminGroups);
-
- service = new InternalPermissionService(roleDao, userDao);
- service.removePermission(params);
- }
-
- @Test
public void should_fail_on_anonymous_access() throws Exception {
throwable.expect(ForbiddenException.class);
params = buildParams("user", null, Permissions.QUALITY_PROFILE_ADMIN);