aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorGuillaume Jambet <guillaume.jambet@sonarsource.com>2017-11-07 17:26:58 +0100
committerGuillaume Jambet <guillaume.jambet@gmail.com>2017-11-09 16:07:06 +0100
commit5dbf937e50b592ec0c171144aac1e45a595dd5ff (patch)
treeab9ee0cdde01763b20843ea1e6e63221b72a986b /server
parent7774bfe48a8028c799cbe7cf322bcd6f0dddda47 (diff)
downloadsonarqube-5dbf937e50b592ec0c171144aac1e45a595dd5ff.tar.gz
sonarqube-5dbf937e50b592ec0c171144aac1e45a595dd5ff.zip
SONAR-10046 adding minimum length validation to api/permissions
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java6
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java9
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java5
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java5
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java4
5 files changed, 15 insertions, 14 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java
index 1f6e95b0f23..27077a53d97 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java
@@ -81,11 +81,13 @@ public class GroupsAction implements PermissionsWsAction {
"<li>'Administer' rights on the specified project</li>" +
"</ul>")
.addPagingParams(DEFAULT_PAGE_SIZE, RESULTS_MAX_SIZE)
- .addSearchQuery("sonar", "names").setDescription("Limit search to group names that contain the supplied string. Must have at least %d characters.<br/>" +
- "When this parameter is not set, only groups having at least one permission are returned.", SEARCH_QUERY_MIN_LENGTH)
.setResponseExample(Resources.getResource(getClass(), "groups-example.json"))
.setHandler(this);
+ action.createSearchQuery("sonar", "names")
+ .setDescription("Limit search to group names that contain the supplied string. When this parameter is not set, only groups having at least one permission are returned.")
+ .setMinimumLength(SEARCH_QUERY_MIN_LENGTH);
+
createOrganizationParameter(action).setSince("6.2");
createPermissionParameter(action).setRequired(false);
createProjectParameters(action);
diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java
index f7538691c96..40d4946820f 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/UsersAction.java
@@ -54,7 +54,6 @@ import static org.sonar.server.permission.ws.PermissionRequestValidator.validate
import static org.sonar.server.permission.ws.PermissionsWsParametersBuilder.createOrganizationParameter;
import static org.sonar.server.permission.ws.PermissionsWsParametersBuilder.createPermissionParameter;
import static org.sonar.server.permission.ws.PermissionsWsParametersBuilder.createProjectParameters;
-import static org.sonar.server.ws.WsUtils.checkRequest;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_ORGANIZATION;
import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_PERMISSION;
@@ -91,8 +90,9 @@ public class UsersAction implements PermissionsWsAction {
.setHandler(this);
action.createParam(Param.TEXT_QUERY)
- .setDescription("Limit search to user names that contain the supplied string. Must have at least %d characters.<br/>" +
- "When this parameter is not set, only users having at least one permission are returned.", SEARCH_QUERY_MIN_LENGTH)
+ .setMinimumLength(SEARCH_QUERY_MIN_LENGTH)
+ .setDescription("Limit search to user names that contain the supplied string. <br/>" +
+ "When this parameter is not set, only users having at least one permission are returned.")
.setExampleValue("eri");
createOrganizationParameter(action).setSince("6.2");
@@ -136,9 +136,6 @@ public class UsersAction implements PermissionsWsAction {
}
if (textQuery == null) {
permissionQuery.withAtLeastOnePermission();
- } else {
- checkRequest(textQuery.length() >= SEARCH_QUERY_MIN_LENGTH,
- "The '%s' parameter must have at least %d characters", Param.TEXT_QUERY, SEARCH_QUERY_MIN_LENGTH);
}
return permissionQuery.build();
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java
index f10ba0fa49a..44c44ce2655 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateGroupsAction.java
@@ -78,8 +78,9 @@ public class TemplateGroupsAction implements PermissionsWsAction {
.setHandler(this);
action.createParam(TEXT_QUERY)
- .setDescription("Limit search to group names that contain the supplied string. Must have at least %d characters.<br/>" +
- "When this parameter is not set, only group having at least one permission are returned.", SEARCH_QUERY_MIN_LENGTH)
+ .setMinimumLength(SEARCH_QUERY_MIN_LENGTH)
+ .setDescription("Limit search to group names that contain the supplied string. <br/>" +
+ "When this parameter is not set, only group having at least one permission are returned.")
.setExampleValue("eri");
createProjectPermissionParameter(action);
diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java
index 0c37f59f1c0..ce703cbd3d5 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/permission/ws/template/TemplateUsersAction.java
@@ -85,8 +85,9 @@ public class TemplateUsersAction implements PermissionsWsAction {
.setHandler(this);
action.createParam(Param.TEXT_QUERY)
- .setDescription("Limit search to user names that contain the supplied string. Must have at least %d characters.<br/>" +
- "When this parameter is not set, only users having at least one permission are returned.", SEARCH_QUERY_MIN_LENGTH)
+ .setMinimumLength(SEARCH_QUERY_MIN_LENGTH)
+ .setDescription("Limit search to user names that contain the supplied string. <br/>" +
+ "When this parameter is not set, only users having at least one permission are returned.")
.setExampleValue("eri");
createProjectPermissionParameter(action).setRequired(false);
createTemplateParameters(action);
diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java
index c424b43fc99..777a086ab05 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/UsersActionTest.java
@@ -347,8 +347,8 @@ public class UsersActionTest extends BasePermissionWsTest<UsersAction> {
public void fail_if_search_query_is_too_short() throws Exception {
loginAsAdmin(db.getDefaultOrganization());
- expectedException.expect(BadRequestException.class);
- expectedException.expectMessage("The 'q' parameter must have at least 3 characters");
+ expectedException.expect(IllegalArgumentException.class);
+ expectedException.expectMessage("'q' length (2) is shorter than the minimum authorized (3)");
newRequest().setParam(TEXT_QUERY, "ab").execute();
}