diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2018-11-08 12:48:51 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-08 12:48:51 +0000 |
commit | c70809a275422353c5c7868bdc291f6a72dfaaf9 (patch) | |
tree | 9ef7be1ab2f398f328ec1b3fb6ebd42d3cc9e1c4 | |
parent | Port hash_password to Python 3 (#4161) (diff) | |
parent | fix parse_string docstring (diff) | |
download | synapse-c70809a275422353c5c7868bdc291f6a72dfaaf9.tar.xz |
Merge pull request #4163 from matrix-org/rav/fix_consent_on_py3
Fix encoding error for consent form on python3
-rw-r--r-- | changelog.d/4163.bugfix | 1 | ||||
-rw-r--r-- | synapse/http/servlet.py | 9 | ||||
-rw-r--r-- | synapse/rest/consent/consent_resource.py | 4 |
3 files changed, 8 insertions, 6 deletions
diff --git a/changelog.d/4163.bugfix b/changelog.d/4163.bugfix new file mode 100644 index 0000000000..c7e0ee229d --- /dev/null +++ b/changelog.d/4163.bugfix @@ -0,0 +1 @@ +Generating the user consent URI no longer fails on Python 3. diff --git a/synapse/http/servlet.py b/synapse/http/servlet.py index a1e4b88e6d..528125e737 100644 --- a/synapse/http/servlet.py +++ b/synapse/http/servlet.py @@ -121,16 +121,15 @@ def parse_string(request, name, default=None, required=False, Args: request: the twisted HTTP request. - name (bytes/unicode): the name of the query parameter. - default (bytes/unicode|None): value to use if the parameter is absent, + name (bytes|unicode): the name of the query parameter. + default (bytes|unicode|None): value to use if the parameter is absent, defaults to None. Must be bytes if encoding is None. required (bool): whether to raise a 400 SynapseError if the parameter is absent, defaults to False. - allowed_values (list[bytes/unicode]): List of allowed values for the + allowed_values (list[bytes|unicode]): List of allowed values for the string, or None if any value is allowed, defaults to None. Must be the same type as name, if given. - encoding: The encoding to decode the name to, and decode the string - content with. + encoding (str|None): The encoding to decode the string content with. Returns: bytes/unicode|None: A string value or the default. Unicode if encoding diff --git a/synapse/rest/consent/consent_resource.py b/synapse/rest/consent/consent_resource.py index e0f7de5d5c..8009b7ff1c 100644 --- a/synapse/rest/consent/consent_resource.py +++ b/synapse/rest/consent/consent_resource.py @@ -160,7 +160,9 @@ class ConsentResource(Resource): try: self._render_template( request, "%s.html" % (version,), - user=username, userhmac=userhmac, version=version, + user=username, + userhmac=userhmac.decode('ascii'), + version=version, has_consented=has_consented, public_version=public_version, ) except TemplateNotFound: |