[PATCH] views: Don't render token section of user profile if REST API disabled

Andrew Donnellan andrew.donnellan at au1.ibm.com
Tue Dec 19 16:41:27 AEDT 2017

In profile.html, if settings.ENABLE_REST_API == False, trying to render a
link to the generate_token page will raise a NoReverseMatch exception, so
we shouldn't render that. In any case, if the REST API is disabled, we
really shouldn't render the API token section of the page at all.

Only render the API token and generation link if settings.ENABLE_REST_API
is True.

Cc: stable
Reported-by: Tomas Novotny <tomas at novotny.cz>
Closes: #138 ("NoReverseMatch exception on user login with disabled REST API")
Fixes: 85c8f369204a ("views: Provide a way to view, (re)generate tokens")
Signed-off-by: Andrew Donnellan <andrew.donnellan at au1.ibm.com>
 patchwork/templates/patchwork/profile.html | 2 ++
 patchwork/views/user.py                    | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/patchwork/templates/patchwork/profile.html b/patchwork/templates/patchwork/profile.html
index 75c4f59..4ca78da 100644
--- a/patchwork/templates/patchwork/profile.html
+++ b/patchwork/templates/patchwork/profile.html
@@ -140,6 +140,7 @@ address.</p>
   <td><a href="{% url 'password_change' %}">Change password</a>
+{% if rest_api_enabled %}
   <th>API Token:</th>
@@ -162,6 +163,7 @@ address.</p>
+{% endif %}
diff --git a/patchwork/views/user.py b/patchwork/views/user.py
index d99fedf..693c02d 100644
--- a/patchwork/views/user.py
+++ b/patchwork/views/user.py
@@ -128,6 +128,8 @@ def profile(request):
     context['linked_emails'] = people
     context['linkform'] = EmailForm()
     context['api_token'] = request.user.profile.token
+    if settings.ENABLE_REST_API:
+        context['rest_api_enabled'] = True
     return render(request, 'patchwork/profile.html', context)

More information about the Patchwork mailing list