diff options
author | Benoit <benoit.gianinetti@sonarsource.com> | 2019-06-26 09:44:17 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2019-07-05 20:21:12 +0200 |
commit | 35c9cbb3ff8894f904113899851eead68228be56 (patch) | |
tree | 340b6171fde1029d8b24d2a71e64fc2573936882 /server/sonar-server/src | |
parent | 0eadd0c465f864f83a86a9110cb936d3507cf7d4 (diff) | |
download | sonarqube-35c9cbb3ff8894f904113899851eead68228be56.tar.gz sonarqube-35c9cbb3ff8894f904113899851eead68228be56.zip |
SC-764 Users can remove their personal organization
Diffstat (limited to 'server/sonar-server/src')
4 files changed, 4 insertions, 23 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/organization/ws/DeleteAction.java b/server/sonar-server/src/main/java/org/sonar/server/organization/ws/DeleteAction.java index f02b990843b..152540a8027 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/organization/ws/DeleteAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/organization/ws/DeleteAction.java @@ -109,11 +109,7 @@ public class DeleteAction implements OrganizationsWsAction { preventDeletionOfDefaultOrganization(key, defaultOrganizationProvider.get()); OrganizationDto organization = checkFoundWithOptional(dbClient.organizationDao().selectByKey(dbSession, key), "Organization with key '%s' not found", key); - if (organization.isGuarded()) { - userSession.checkIsSystemAdministrator(); - } else { - userSession.checkPermission(ADMINISTER, organization); - } + userSession.checkPermission(ADMINISTER, organization); deleteProjects(dbSession, organization); deletePermissions(dbSession, organization); diff --git a/server/sonar-server/src/main/java/org/sonar/server/organization/ws/SearchAction.java b/server/sonar-server/src/main/java/org/sonar/server/organization/ws/SearchAction.java index 2939d677279..d19e3ae109b 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/organization/ws/SearchAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/organization/ws/SearchAction.java @@ -149,7 +149,7 @@ public class SearchAction implements OrganizationsWsAction { wsOrganization.setActions(Organization.Actions.newBuilder() .setAdmin(isAdmin) .setProvision(canProvision) - .setDelete(o.isGuarded() ? userSession.isRoot() : isAdmin)); + .setDelete(isAdmin)); response.addOrganizations(toOrganization(wsOrganization, o, organizationAlmBindingByOrgUuid.get(o.getUuid()), onlyMembershipOrganizations)); }); return response.build(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/organization/ws/DeleteActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/organization/ws/DeleteActionTest.java index c6e9711f937..8b19fa4b1ec 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/organization/ws/DeleteActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/organization/ws/DeleteActionTest.java @@ -335,17 +335,6 @@ public class DeleteActionTest { } @Test - public void delete_specified_guarded_organization_if_exists_and_user_is_system_administrator() { - OrganizationDto organization = db.organizations().insert(dto -> dto.setGuarded(true)); - logInAsSystemAdministrator(); - - sendRequest(organization); - - verifyOrganizationDoesNotExist(organization); - verify(projectLifeCycleListeners).onProjectsDeleted(emptySet()); - } - - @Test @UseDataProvider("OneOrMoreIterations") public void delete_components_of_specified_organization(int numberOfIterations) { OrganizationDto organization = db.organizations().insert(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/organization/ws/SearchActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/organization/ws/SearchActionTest.java index aa52e7cc9fb..b190cb30202 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/organization/ws/SearchActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/organization/ws/SearchActionTest.java @@ -82,14 +82,11 @@ public class SearchActionTest { OrganizationDto userAdminOrganization = db.organizations().insert(); OrganizationDto groupAdminOrganization = db.organizations().insert(); OrganizationDto browseOrganization = db.organizations().insert(); - OrganizationDto guardedOrganization = db.organizations().insert(dto -> dto.setGuarded(true)); UserDto user = db.users().insertUser(); GroupDto group = db.users().insertGroup(groupAdminOrganization); db.users().insertMember(group, user); - userSession.logIn(user).addPermission(ADMINISTER, userAdminOrganization) - .addPermission(ADMINISTER, guardedOrganization); + userSession.logIn(user).addPermission(ADMINISTER, userAdminOrganization); db.users().insertPermissionOnUser(userAdminOrganization, user, ADMINISTER); - db.users().insertPermissionOnUser(guardedOrganization, user, ADMINISTER); db.users().insertPermissionOnGroup(group, ADMINISTER); SearchWsResponse result = call(ws.newRequest()); @@ -99,8 +96,7 @@ public class SearchActionTest { .containsExactlyInAnyOrder( tuple(userAdminOrganization.getKey(), true, true), tuple(browseOrganization.getKey(), false, false), - tuple(groupAdminOrganization.getKey(), true, true), - tuple(guardedOrganization.getKey(), true, false)); + tuple(groupAdminOrganization.getKey(), true, true)); } @Test |