Decode request.query_string before use.
authorBen Sturmfels <ben@sturm.com.au>
Thu, 9 Apr 2020 05:53:49 +0000 (15:53 +1000)
committerBen Sturmfels <ben@sturm.com.au>
Thu, 9 Apr 2020 05:53:49 +0000 (15:53 +1000)
Prior to this change, when pagination kicks in on the user management or report
management panel, the following exception is raised:

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

The cause is that `request.query_string` in the URL parameters in raw bytestring
form as per Werkzeug documentation.

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..72d7efd2af8c5baad8160a34e2a8828f410eae00 100644 (file)
@@ -47,7 +47,7 @@
       {% 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>
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  %}