diff options
author | Luke Barnard <lukebarnard1@users.noreply.github.com> | 2017-05-11 09:36:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-11 09:36:39 +0100 |
commit | c1935f0a41d35b5b766fc6af3924ed267cf287eb (patch) | |
tree | a40643ce61ac9bece8f6e6e95ec4451191df7e14 | |
parent | Merge pull request #2208 from matrix-org/erikj/ratelimit_overrid (diff) | |
parent | Modify condition on empty localpart (diff) | |
download | synapse-c1935f0a41d35b5b766fc6af3924ed267cf287eb.tar.xz |
Merge pull request #2213 from matrix-org/luke/username-availability-qp
Modify register/available to be GET with query param
-rw-r--r-- | synapse/handlers/register.py | 7 | ||||
-rw-r--r-- | synapse/rest/client/v2_alpha/register.py | 9 |
2 files changed, 11 insertions, 5 deletions
diff --git a/synapse/handlers/register.py b/synapse/handlers/register.py index 03c6a85fc6..ee3a2269a8 100644 --- a/synapse/handlers/register.py +++ b/synapse/handlers/register.py @@ -54,6 +54,13 @@ class RegistrationHandler(BaseHandler): Codes.INVALID_USERNAME ) + if not localpart: + raise SynapseError( + 400, + "User ID cannot be empty", + Codes.INVALID_USERNAME + ) + if localpart[0] == '_': raise SynapseError( 400, diff --git a/synapse/rest/client/v2_alpha/register.py b/synapse/rest/client/v2_alpha/register.py index 6a7cd96ea5..1421c18152 100644 --- a/synapse/rest/client/v2_alpha/register.py +++ b/synapse/rest/client/v2_alpha/register.py @@ -21,7 +21,7 @@ from synapse.api.auth import get_access_token_from_request, has_access_token from synapse.api.constants import LoginType from synapse.api.errors import SynapseError, Codes, UnrecognizedRequestError from synapse.http.servlet import ( - RestServlet, parse_json_object_from_request, assert_params_in_request + RestServlet, parse_json_object_from_request, assert_params_in_request, parse_string ) from synapse.util.msisdn import phone_number_to_msisdn @@ -142,15 +142,14 @@ class UsernameAvailabilityRestServlet(RestServlet): ) @defer.inlineCallbacks - def on_POST(self, request): + def on_GET(self, request): ip = self.hs.get_ip_from_request(request) with self.ratelimiter.ratelimit(ip) as wait_deferred: yield wait_deferred - body = parse_json_object_from_request(request) - assert_params_in_request(body, ['username']) + username = parse_string(request, "username", required=True) - yield self.registration_handler.check_username(body['username']) + yield self.registration_handler.check_username(username) defer.returnValue((200, {"available": True})) |