aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--SETUP.md1
-rw-r--r--pysite/permissions.py8
-rw-r--r--pysite/settings.py11
3 files changed, 20 insertions, 0 deletions
diff --git a/SETUP.md b/SETUP.md
index dd974338..2a8c64e9 100644
--- a/SETUP.md
+++ b/SETUP.md
@@ -6,6 +6,7 @@
- `psql -c 'CREATE DATABASE pysite OWNER pysite;'`
- `echo 'DEBUG=1' >> .env`
- `echo 'DATABASE_URL=postgres://pysite:@localhost/pysite' >> .env`
+- `echo 'BOT_API_KEY=123456' >> .env`
- `pipenv shell`
- `python manage.py migrate`
- `python manage.py runserver`
diff --git a/pysite/permissions.py b/pysite/permissions.py
new file mode 100644
index 00000000..2a96b819
--- /dev/null
+++ b/pysite/permissions.py
@@ -0,0 +1,8 @@
+from django.conf import setting
+from rest_framework import permissions
+
+
+class HasValidAPIKey(permissions.BasePermission):
+ def has_permission(self, request, view):
+ api_key = request.META.get('HTTP_X_API_KEY')
+ return api_key == settings.BOT_API_KEY
diff --git a/pysite/settings.py b/pysite/settings.py
index cf89bb40..247a27a9 100644
--- a/pysite/settings.py
+++ b/pysite/settings.py
@@ -159,3 +159,14 @@ if DEBUG:
PARENT_HOST = 'pythondiscord.local:8000'
else:
PARENT_HOST = 'pythondiscord.com'
+
+# Django REST framework
+# http://www.django-rest-framework.org
+REST_FRAMEWORK = {
+ 'DEFAULT_PERMISSION_CLASSES': [
+ 'pysite.permissions.HasValidAPIKey'
+ ]
+}
+
+# Bot API settings
+BOT_API_KEY = env('BOT_API_KEY')