diff options
author | Simon Brandhof <simon.brandhof@gmail.com> | 2013-06-29 19:07:40 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@gmail.com> | 2013-06-29 19:07:40 +0200 |
commit | b319c87ecf00b6c95b5dcb7924bdc8689b5153a0 (patch) | |
tree | d47b7d4e19848a3c22778b7a6b0466bdb9e9a1f7 /sonar-server/src | |
parent | 70b6abe27893c2bef042cce311e0e4d90654e23f (diff) | |
download | sonarqube-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.java | 13 | ||||
-rw-r--r-- | sonar-server/src/test/java/org/sonar/server/permission/InternalPermissionServiceTest.java | 26 |
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); |