diff --git a/requirements.txt b/requirements.txt index 17f60a9..64bfdb2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ django>=2.1.4 +pyotp diff --git a/returnok/__init__.py b/returnok/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/returnok/admin.py b/returnok/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/returnok/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/returnok/apps.py b/returnok/apps.py new file mode 100644 index 0000000..1ee66ca --- /dev/null +++ b/returnok/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class ReturnokConfig(AppConfig): + name = 'returnok' diff --git a/returnok/migrations/__init__.py b/returnok/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/returnok/models.py b/returnok/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/returnok/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/returnok/tests.py b/returnok/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/returnok/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/returnok/urls.py b/returnok/urls.py new file mode 100644 index 0000000..88a9cac --- /dev/null +++ b/returnok/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from . import views + +urlpatterns = [ + path('', views.index, name='index'), +] diff --git a/returnok/views.py b/returnok/views.py new file mode 100644 index 0000000..e3b7ea1 --- /dev/null +++ b/returnok/views.py @@ -0,0 +1,13 @@ +import pyotp +import json + +from django.http import HttpResponse +from django.conf import settings + +def index(request): + answer = {} + answer['token'] = pyotp.TOTP(settings.UNGLEICHOTP['UNGLEICHOTPSEED']) + answer['name'] = settings.UNGLEICHOTP['UNGLEICHOTPNAME'] + answer['realm'] = settings.UNGLEICHOTP['UNGLEICHOTPREALM'] + + return HttpResponse(json.dumps(answer)) diff --git a/ungleichipv6only/settings.py b/ungleichipv6only/settings.py index 44f50ba..1f3ecf8 100644 --- a/ungleichipv6only/settings.py +++ b/ungleichipv6only/settings.py @@ -12,6 +12,15 @@ https://docs.djangoproject.com/en/2.1/ref/settings/ import os +UNGLEICHOTP={} + +for env in ['UNGLEICHOTPREALM', 'UNGLEICHOTPNAME', 'UNGLEICHOTPSEED' ]: + if not env in os.environ: + raise Exception("Required environment variable missing: {}".format(env)) + + UNGLEICHOTP[env] = os.environ[env] + + # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) diff --git a/ungleichipv6only/urls.py b/ungleichipv6only/urls.py index d11242e..f494bc3 100644 --- a/ungleichipv6only/urls.py +++ b/ungleichipv6only/urls.py @@ -13,9 +13,9 @@ Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ -from django.contrib import admin -from django.urls import path +from django.urls import path, include + urlpatterns = [ - path('admin/', admin.site.urls), + path('', include('returnok.urls') ]