Decode request.query_string before use.
authorBen Sturmfels <ben@sturm.com.au>
Thu, 9 Apr 2020 05:29:51 +0000 (15:29 +1000)
committerBen Sturmfels <ben@sturm.com.au>
Thu, 9 Apr 2020 05:29:51 +0000 (15:29 +1000)
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.

mediagoblin/plugins/openid/templates/mediagoblin/plugins/openid/login.html
mediagoblin/plugins/openid/templates/mediagoblin/plugins/openid/login_link.html
mediagoblin/templates/mediagoblin/moderation/report_panel.html
mediagoblin/templates/mediagoblin/moderation/user_panel.html

index 193a3b2d234da9e72cf7264b285b1948191b9e6a..4ebfdf548201fbc572eff64316881352d0f620a2 100644 (file)
       {% endif %}
       {% if allow_registration %}
         <p>
-        {% trans %}Log in to create an account!{% endtrans %} 
+        {% trans %}Log in to create an account!{% endtrans %}
         </p>
       {% endif %}
       {% template_hook('login_link') %}
       {% if pass_auth is defined %}
       <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 %}
       </a>
       </p>
@@ -63,4 +63,3 @@
     </div>
   </form>
 {% endblock %}
-
index fa4d5e856d610fba5ce6aeba521229305ea0d544..78d66745523849b46c61feb98c922768f0022bbe 100644 (file)
@@ -19,7 +19,7 @@
 {% block openid_login_link %}
   {% if openid_link is defined %}
     <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 %}
       </a>
     </p>
index c82cd41260749e0b04c6741ebbc9d03261dc85e6..52a6ad8702bcf8ab97192787f61c070a9041eb61 100644 (file)
 <h2>{% trans %}Active Reports Filed{% endtrans %}</h2>
 {% if report_list.count() %}
   {% if not active_settings.last_page == 1 %}
-  {% if 'active_p='~active_settings.current_page in request.query_string %}
-    {% set query_string = request.query_string %}{% else %}
+  {% if 'active_p='~active_settings.current_page in request.query_string.decode() %}
+    {% set query_string = request.query_string.decode() %}{% else %}
     {% set query_string =
-'active_p='~active_settings.current_page~"&"+request.query_string %}
+'active_p='~active_settings.current_page~"&"+request.query_string.decode() %}
   {% endif %}
   <div class="right_align">
     {% set first_vis = active_settings.current_page-3  %}
@@ -127,10 +127,10 @@ curr_page !=p %}
 <h2>{% trans %}Closed Reports{% endtrans %}</h2>
 {% if closed_report_list.count() %}
   {% if not closed_settings.last_page == 1 %}
-  {% if 'closed_p='~closed_settings.current_page in request.query_string %}
-    {% set query_string = request.query_string %}{% else %}
+  {% if 'closed_p='~closed_settings.current_page in request.query_string.decode() %}
+    {% set query_string = request.query_string.decode() %}{% else %}
     {% set query_string =
-'closed_p='~closed_settings.current_page~"&"+request.query_string %}
+'closed_p='~closed_settings.current_page~"&"+request.query_string.decode() %}
   {% endif %}
   <div class="right_align">
     {% set first_vis = closed_settings.current_page-3  %}
index 4949960eaaf948592d7b8e5c07c938849b0d9c7a..4046fecded1080649912589b47477de0a9c3b292 100644 (file)
 
 {% if user_list.count() %}
   {% if not last_page == 1 %}
-  {% if 'p='~current_page in request.query_string %}
-    {% set query_string = request.query_string %}{% else %}
+  {% if 'p='~current_page in request.query_string.decode() %}
+    {% set query_string = request.query_string.decode() %}{% else %}
     {% set query_string =
-'p='~current_page~"&"+request.query_string %}
+'p='~current_page~"&"+request.query_string.decode() %}
   {% endif %}
   <div class="right_align">
     {% set first_vis = current_page-3  %}