Decode request.query_string before use.

This doesn't seem to be an issue in my Guix SD/Python 3.7 testing, but hit an
issue on Debian 9/Python3.5 where concatenating text to `request.query_string`
was causing the error:

  TypeError: a bytes-like object is required, not 'str'

This clearly hasn't been an issue in the past though, so I suspect there's a
library somewhere that's on a different version and is behaving differently.
This commit is contained in:
Ben Sturmfels 2020-04-09 15:29:51 +10:00
parent 15ddb7c0ec
commit b6fba85400
No known key found for this signature in database
GPG Key ID: 023C05E2C9C068F0
4 changed files with 12 additions and 13 deletions

View File

@ -47,7 +47,7 @@
{% template_hook('login_link') %} {% template_hook('login_link') %}
{% if pass_auth is defined %} {% if pass_auth is defined %}
<p> <p>
<a href="{{ request.urlgen('mediagoblin.auth.login') }}?{{ request.query_string }}"> <a href="{{ request.urlgen('mediagoblin.auth.login') }}?{{ request.query_string.decode() }}">
{%- trans %}Or login with a password!{% endtrans %} {%- trans %}Or login with a password!{% endtrans %}
</a> </a>
</p> </p>
@ -63,4 +63,3 @@
</div> </div>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -19,7 +19,7 @@
{% block openid_login_link %} {% block openid_login_link %}
{% if openid_link is defined %} {% if openid_link is defined %}
<p> <p>
<a href="{{ request.urlgen('mediagoblin.plugins.openid.login') }}?{{ request.query_string }}"> <a href="{{ request.urlgen('mediagoblin.plugins.openid.login') }}?{{ request.query_string.decode() }}">
{%- trans %}Or login with OpenID!{% endtrans %} {%- trans %}Or login with OpenID!{% endtrans %}
</a> </a>
</p> </p>

View File

@ -35,10 +35,10 @@
<h2>{% trans %}Active Reports Filed{% endtrans %}</h2> <h2>{% trans %}Active Reports Filed{% endtrans %}</h2>
{% if report_list.count() %} {% if report_list.count() %}
{% if not active_settings.last_page == 1 %} {% if not active_settings.last_page == 1 %}
{% if 'active_p='~active_settings.current_page in request.query_string %} {% if 'active_p='~active_settings.current_page in request.query_string.decode() %}
{% set query_string = request.query_string %}{% else %} {% set query_string = request.query_string.decode() %}{% else %}
{% set query_string = {% set query_string =
'active_p='~active_settings.current_page~"&"+request.query_string %} 'active_p='~active_settings.current_page~"&"+request.query_string.decode() %}
{% endif %} {% endif %}
<div class="right_align"> <div class="right_align">
{% set first_vis = active_settings.current_page-3 %} {% set first_vis = active_settings.current_page-3 %}
@ -127,10 +127,10 @@ curr_page !=p %}
<h2>{% trans %}Closed Reports{% endtrans %}</h2> <h2>{% trans %}Closed Reports{% endtrans %}</h2>
{% if closed_report_list.count() %} {% if closed_report_list.count() %}
{% if not closed_settings.last_page == 1 %} {% if not closed_settings.last_page == 1 %}
{% if 'closed_p='~closed_settings.current_page in request.query_string %} {% if 'closed_p='~closed_settings.current_page in request.query_string.decode() %}
{% set query_string = request.query_string %}{% else %} {% set query_string = request.query_string.decode() %}{% else %}
{% set query_string = {% set query_string =
'closed_p='~closed_settings.current_page~"&"+request.query_string %} 'closed_p='~closed_settings.current_page~"&"+request.query_string.decode() %}
{% endif %} {% endif %}
<div class="right_align"> <div class="right_align">
{% set first_vis = closed_settings.current_page-3 %} {% set first_vis = closed_settings.current_page-3 %}

View File

@ -35,10 +35,10 @@
{% if user_list.count() %} {% if user_list.count() %}
{% if not last_page == 1 %} {% if not last_page == 1 %}
{% if 'p='~current_page in request.query_string %} {% if 'p='~current_page in request.query_string.decode() %}
{% set query_string = request.query_string %}{% else %} {% set query_string = request.query_string.decode() %}{% else %}
{% set query_string = {% set query_string =
'p='~current_page~"&"+request.query_string %} 'p='~current_page~"&"+request.query_string.decode() %}
{% endif %} {% endif %}
<div class="right_align"> <div class="right_align">
{% set first_vis = current_page-3 %} {% set first_vis = current_page-3 %}