diff options
-rw-r--r-- | SETUP.md | 1 | ||||
-rw-r--r-- | pysite/permissions.py | 8 | ||||
-rw-r--r-- | pysite/settings.py | 11 |
3 files changed, 20 insertions, 0 deletions
@@ -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') |