From 155a40e29601da83db973cf198c5c98c7d5c384c Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Tue, 15 May 2018 19:06:08 +0200
Subject: [PATCH] Fixed #205: Disabled browsable HTML API in production

---
 .env.dev                            |  1 +
 api/config/settings/common.py       | 10 ++++++++++
 changes/changelog.d/205.enhancement |  1 +
 3 files changed, 12 insertions(+)
 create mode 100644 changes/changelog.d/205.enhancement

diff --git a/.env.dev b/.env.dev
index d9e2dd3ceb..7e9eb3bf15 100644
--- a/.env.dev
+++ b/.env.dev
@@ -9,3 +9,4 @@ FUNKWHALE_PROTOCOL=http
 PYTHONDONTWRITEBYTECODE=true
 WEBPACK_DEVSERVER_PORT=8080
 MUSIC_DIRECTORY_PATH=/music
+BROWSABLE_API_ENABLED=True
diff --git a/api/config/settings/common.py b/api/config/settings/common.py
index 5fed9f25e8..59aa93117e 100644
--- a/api/config/settings/common.py
+++ b/api/config/settings/common.py
@@ -406,8 +406,18 @@ REST_FRAMEWORK = {
     'DEFAULT_FILTER_BACKENDS': (
         'rest_framework.filters.OrderingFilter',
         'django_filters.rest_framework.DjangoFilterBackend',
+    ),
+    'DEFAULT_RENDERER_CLASSES': (
+        'rest_framework.renderers.JSONRenderer',
     )
 }
+
+BROWSABLE_API_ENABLED = env.bool('BROWSABLE_API_ENABLED', default=False)
+if BROWSABLE_API_ENABLED:
+    REST_FRAMEWORK['DEFAULT_RENDERER_CLASSES'] += (
+        'rest_framework.renderers.BrowsableAPIRenderer',
+    )
+
 REST_AUTH_SERIALIZERS = {
     'PASSWORD_RESET_SERIALIZER': 'funkwhale_api.users.serializers.PasswordResetSerializer'  # noqa
 }
diff --git a/changes/changelog.d/205.enhancement b/changes/changelog.d/205.enhancement
new file mode 100644
index 0000000000..b44375b13b
--- /dev/null
+++ b/changes/changelog.d/205.enhancement
@@ -0,0 +1 @@
+Disabled browsable HTML API in production (#205)
-- 
GitLab