Merge pull request #4163 from matrix-org/rav/fix_consent_on_py3

Fix encoding error for consent form on python3
release-v0.33.9
Richard van der Hoff 2018-11-08 12:48:51 +00:00 committed by GitHub
commit c70809a275
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 6 deletions

1
changelog.d/4163.bugfix Normal file
View File

@ -0,0 +1 @@
Generating the user consent URI no longer fails on Python 3.

View File

@ -121,16 +121,15 @@ def parse_string(request, name, default=None, required=False,
Args: Args:
request: the twisted HTTP request. request: the twisted HTTP request.
name (bytes/unicode): the name of the query parameter. name (bytes|unicode): the name of the query parameter.
default (bytes/unicode|None): value to use if the parameter is absent, default (bytes|unicode|None): value to use if the parameter is absent,
defaults to None. Must be bytes if encoding is None. defaults to None. Must be bytes if encoding is None.
required (bool): whether to raise a 400 SynapseError if the required (bool): whether to raise a 400 SynapseError if the
parameter is absent, defaults to False. 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 string, or None if any value is allowed, defaults to None. Must be
the same type as name, if given. the same type as name, if given.
encoding: The encoding to decode the name to, and decode the string encoding (str|None): The encoding to decode the string content with.
content with.
Returns: Returns:
bytes/unicode|None: A string value or the default. Unicode if encoding bytes/unicode|None: A string value or the default. Unicode if encoding

View File

@ -160,7 +160,9 @@ class ConsentResource(Resource):
try: try:
self._render_template( self._render_template(
request, "%s.html" % (version,), 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, has_consented=has_consented, public_version=public_version,
) )
except TemplateNotFound: except TemplateNotFound: