From 2b7b0470646b17f58a160d78bfab1ca6b44a7c64 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Sun, 16 Oct 2016 23:08:50 +0200 Subject: SONAR-8277 organization in WS api/permissions/remove_user_from_template --- .../ws/template/RemoveUserFromTemplateAction.java | 12 +++++++---- .../template/RemoveUserFromTemplateActionTest.java | 25 ++++++++++------------ .../RemoveUserFromTemplateWsRequest.java | 11 ++++++++++ 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateAction.java index 37f7012531d..e1d56feedc1 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateAction.java @@ -19,6 +19,7 @@ */ package org.sonar.server.permission.ws.template; +import java.util.Optional; import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; @@ -31,11 +32,12 @@ import org.sonar.server.permission.ws.PermissionsWsAction; import org.sonar.server.user.UserSession; import org.sonarqube.ws.client.permission.RemoveUserFromTemplateWsRequest; -import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdminUser; +import static org.sonar.server.permission.PermissionPrivilegeChecker.checkProjectAdmin; import static org.sonar.server.permission.ws.PermissionRequestValidator.validateProjectPermission; import static org.sonar.server.permission.ws.PermissionsWsParametersBuilder.createProjectPermissionParameter; import static org.sonar.server.permission.ws.PermissionsWsParametersBuilder.createTemplateParameters; import static org.sonar.server.permission.ws.PermissionsWsParametersBuilder.createUserLoginParameter; +import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_ORGANIZATION_KEY; import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_PERMISSION; import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_TEMPLATE_ID; import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_TEMPLATE_NAME; @@ -74,14 +76,15 @@ public class RemoveUserFromTemplateAction implements PermissionsWsAction { } private void doHandle(RemoveUserFromTemplateWsRequest request) { - checkGlobalAdminUser(userSession); - String permission = request.getPermission(); String userLogin = request.getLogin(); try (DbSession dbSession = dbClient.openSession(false)) { validateProjectPermission(permission); - PermissionTemplateDto template = wsSupport.findTemplate(dbSession, WsTemplateRef.newTemplateRef(request.getTemplateId(), request.getTemplateName())); + PermissionTemplateDto template = wsSupport.findTemplate(dbSession, WsTemplateRef.newTemplateRef( + request.getTemplateId(), request.getOrganization(), request.getTemplateName())); + checkProjectAdmin(userSession, template.getOrganizationUuid(), Optional.empty()); + UserId user = wsSupport.findUser(dbSession, userLogin); dbClient.permissionTemplateDao().deleteUserPermission(dbSession, template.getId(), user.getId(), permission); @@ -94,6 +97,7 @@ public class RemoveUserFromTemplateAction implements PermissionsWsAction { .setPermission(request.mandatoryParam(PARAM_PERMISSION)) .setLogin(request.mandatoryParam(PARAM_USER_LOGIN)) .setTemplateId(request.param(PARAM_TEMPLATE_ID)) + .setOrganization(request.param(PARAM_ORGANIZATION_KEY)) .setTemplateName(request.param(PARAM_TEMPLATE_NAME)); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateActionTest.java index 3d144eae82a..84474200ad3 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/RemoveUserFromTemplateActionTest.java @@ -64,7 +64,7 @@ public class RemoveUserFromTemplateActionTest extends BasePermissionWsTest