From 03b81a173803a7d06a235ff857fd445d35439696 Mon Sep 17 00:00:00 2001 From: Teryk Bellahsene Date: Thu, 27 Aug 2015 18:39:19 +0200 Subject: [PATCH] SONAR-6497 SONAR-6496 WS create and update permission template with better tests on blank names as input --- .../ws/AddGroupToTemplateAction.java | 4 +- .../ws/AddUserToTemplateAction.java | 4 +- .../permission/ws/CreateTemplateAction.java | 14 +++---- .../permission/ws/DeleteTemplateAction.java | 4 +- .../server/permission/ws/Parameters.java | 11 ++--- .../ws/PermissionRequestValidator.java | 6 +++ .../ws/RemoveGroupFromTemplateAction.java | 4 +- .../ws/RemoveUserFromTemplateAction.java | 4 +- .../permission/ws/UpdateTemplateAction.java | 20 ++++----- .../ws/AddGroupToTemplateActionTest.java | 6 +-- .../ws/AddUserToTemplateActionTest.java | 2 +- .../ws/CreateTemplateActionTest.java | 2 +- .../ws/DeleteTemplateActionTest.java | 4 +- .../ws/PermissionRequestValidatorTest.java | 41 +++++++++++++++++++ .../ws/RemoveGroupFromTemplateActionTest.java | 6 +-- .../ws/RemoveUserFromTemplateActionTest.java | 2 +- .../ws/UpdateTemplateActionTest.java | 14 +++++-- 17 files changed, 102 insertions(+), 46 deletions(-) create mode 100644 server/sonar-server/src/test/java/org/sonar/server/permission/ws/PermissionRequestValidatorTest.java diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/AddGroupToTemplateAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/AddGroupToTemplateAction.java index c7cf594ad24..e7f01917731 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/AddGroupToTemplateAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/AddGroupToTemplateAction.java @@ -37,7 +37,7 @@ import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobal import static org.sonar.server.permission.ws.PermissionRequestValidator.validateNotAnyoneAndAdminPermission; import static org.sonar.server.permission.ws.PermissionRequestValidator.validateProjectPermission; import static org.sonar.server.permission.ws.Parameters.PARAM_PERMISSION; -import static org.sonar.server.permission.ws.Parameters.PARAM_LONG_TEMPLATE_KEY; +import static org.sonar.server.permission.ws.Parameters.PARAM_LONG_TEMPLATE_ID; import static org.sonar.server.permission.ws.Parameters.createGroupIdParameter; import static org.sonar.server.permission.ws.Parameters.createGroupNameParameter; import static org.sonar.server.permission.ws.Parameters.createProjectPermissionParameter; @@ -75,7 +75,7 @@ public class AddGroupToTemplateAction implements PermissionsWsAction { public void handle(Request wsRequest, Response wsResponse) throws Exception { checkGlobalAdminUser(userSession); - String templateKey = wsRequest.mandatoryParam(PARAM_LONG_TEMPLATE_KEY); + String templateKey = wsRequest.mandatoryParam(PARAM_LONG_TEMPLATE_ID); String permission = wsRequest.mandatoryParam(PARAM_PERMISSION); WsGroup group = WsGroup.fromRequest(wsRequest); diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/AddUserToTemplateAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/AddUserToTemplateAction.java index 905648c0750..eb1e3197693 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/AddUserToTemplateAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/AddUserToTemplateAction.java @@ -38,7 +38,7 @@ import static org.sonar.db.user.GroupMembershipQuery.IN; import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdminUser; import static org.sonar.server.permission.ws.PermissionRequestValidator.validateProjectPermission; import static org.sonar.server.permission.ws.Parameters.PARAM_PERMISSION; -import static org.sonar.server.permission.ws.Parameters.PARAM_LONG_TEMPLATE_KEY; +import static org.sonar.server.permission.ws.Parameters.PARAM_LONG_TEMPLATE_ID; import static org.sonar.server.permission.ws.Parameters.PARAM_USER_LOGIN; import static org.sonar.server.permission.ws.Parameters.createProjectPermissionParameter; import static org.sonar.server.permission.ws.Parameters.createTemplateKeyParameterToAddRemoveUserOrGroup; @@ -74,7 +74,7 @@ public class AddUserToTemplateAction implements PermissionsWsAction { public void handle(Request wsRequest, Response wsResponse) throws Exception { checkGlobalAdminUser(userSession); - String templateKey = wsRequest.mandatoryParam(PARAM_LONG_TEMPLATE_KEY); + String templateKey = wsRequest.mandatoryParam(PARAM_LONG_TEMPLATE_ID); String permission = wsRequest.mandatoryParam(PARAM_PERMISSION); final String userLogin = wsRequest.mandatoryParam(PARAM_USER_LOGIN); diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/CreateTemplateAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/CreateTemplateAction.java index c782fad40a5..04141c3dad4 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/CreateTemplateAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/CreateTemplateAction.java @@ -32,14 +32,14 @@ import org.sonarqube.ws.Permissions; import org.sonarqube.ws.Permissions.PermissionTemplate; import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdminUser; -import static org.sonar.server.permission.ws.PermissionRequestValidator.MSG_TEMPLATE_NAME_NOT_BLANK; -import static org.sonar.server.permission.ws.PermissionRequestValidator.MSG_TEMPLATE_WITH_SAME_NAME; -import static org.sonar.server.permission.ws.PermissionRequestValidator.validateProjectPattern; import static org.sonar.server.permission.ws.Parameters.PARAM_TEMPLATE_DESCRIPTION; import static org.sonar.server.permission.ws.Parameters.PARAM_TEMPLATE_NAME; import static org.sonar.server.permission.ws.Parameters.PARAM_TEMPLATE_PATTERN; import static org.sonar.server.permission.ws.Parameters.createTemplateDescriptionParameter; import static org.sonar.server.permission.ws.Parameters.createTemplateProjectKeyPatternParameter; +import static org.sonar.server.permission.ws.PermissionRequestValidator.MSG_TEMPLATE_WITH_SAME_NAME; +import static org.sonar.server.permission.ws.PermissionRequestValidator.validateProjectPattern; +import static org.sonar.server.permission.ws.PermissionRequestValidator.validateTemplateNameFormat; import static org.sonar.server.permission.ws.PermissionTemplateDtoBuilder.create; import static org.sonar.server.permission.ws.PermissionTemplateDtoToPermissionTemplateResponse.toPermissionTemplateResponse; import static org.sonar.server.ws.WsUtils.checkRequest; @@ -96,12 +96,12 @@ public class CreateTemplateAction implements PermissionsWsAction { } } - private void validateTemplateNameForCreation(DbSession dbSession, String templateName) { - checkRequest(!templateName.isEmpty(), MSG_TEMPLATE_NAME_NOT_BLANK); + private void validateTemplateNameForCreation(DbSession dbSession, String name) { + validateTemplateNameFormat(name); - PermissionTemplateDto permissionTemplateWithSameName = dbClient.permissionTemplateDao().selectByName(dbSession, templateName); + PermissionTemplateDto permissionTemplateWithSameName = dbClient.permissionTemplateDao().selectByName(dbSession, name); checkRequest(permissionTemplateWithSameName == null, String.format - (MSG_TEMPLATE_WITH_SAME_NAME, templateName)); + (MSG_TEMPLATE_WITH_SAME_NAME, name)); } private PermissionTemplateDto insertTemplate(DbSession dbSession, String name, String description, String projectPattern) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/DeleteTemplateAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/DeleteTemplateAction.java index 0eaeb105d73..8f15173e3e3 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/DeleteTemplateAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/DeleteTemplateAction.java @@ -28,7 +28,7 @@ import org.sonar.db.DbSession; import org.sonar.server.user.UserSession; import static org.sonar.server.permission.PermissionPrivilegeChecker.checkGlobalAdminUser; -import static org.sonar.server.permission.ws.Parameters.PARAM_TEMPLATE_KEY; +import static org.sonar.server.permission.ws.Parameters.PARAM_TEMPLATE_ID; import static org.sonar.server.permission.ws.Parameters.createTemplateKeyParameter; public class DeleteTemplateAction implements PermissionsWsAction { @@ -55,7 +55,7 @@ public class DeleteTemplateAction implements PermissionsWsAction { @Override public void handle(Request wsRequest, Response wsResponse) throws Exception { checkGlobalAdminUser(userSession); - String key = wsRequest.mandatoryParam(PARAM_TEMPLATE_KEY); + String key = wsRequest.mandatoryParam(PARAM_TEMPLATE_ID); DbSession dbSession = dbClient.openSession(false); try { diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/Parameters.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/Parameters.java index d9a8fac4cfe..211b4f61d04 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/Parameters.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/Parameters.java @@ -32,11 +32,12 @@ class Parameters { static final String PARAM_PROJECT_UUID = "projectId"; static final String PARAM_PROJECT_KEY = "projectKey"; static final String PARAM_USER_LOGIN = "login"; - static final String PARAM_LONG_TEMPLATE_KEY = "templateKey"; - static final String PARAM_TEMPLATE_KEY = "key"; + static final String PARAM_LONG_TEMPLATE_ID = "templateId"; + + static final String PARAM_TEMPLATE_ID = "id"; static final String PARAM_TEMPLATE_NAME = "name"; static final String PARAM_TEMPLATE_DESCRIPTION = "description"; - static final String PARAM_TEMPLATE_PATTERN = "projectPattern"; + static final String PARAM_TEMPLATE_PATTERN = "projectKeyPattern"; private static final String PERMISSION_PARAM_DESCRIPTION = String.format("Permission" + "