Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Fix encoding error for consent form on python3 #4163

Merged
merged 3 commits into from
Nov 8, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/4163.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Generating the user consent URI no longer fails on Python 3.
9 changes: 4 additions & 5 deletions synapse/http/servlet.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 3 additions & 1 deletion synapse/rest/consent/consent_resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,9 @@ def _async_render_GET(self, request):
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:
Expand Down