"<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);
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;
.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");
}
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();
}
.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);
.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);
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();
}