From b4ab46a551d9cd05753cd4756771b56373f49f50 Mon Sep 17 00:00:00 2001 From: David Evans Date: Fri, 19 Jan 2024 09:21:54 +0000 Subject: [PATCH 1/4] Add a minimal index view --- airlock/settings.py | 1 + airlock/templates/base.html | 10 ++++++++++ airlock/templates/index.html | 6 ++++++ airlock/urls.py | 3 +++ airlock/views.py | 5 +++++ tests/integration/__init__.py | 0 tests/integration/test_views.py | 3 +++ 7 files changed, 28 insertions(+) create mode 100644 airlock/templates/base.html create mode 100644 airlock/templates/index.html create mode 100644 airlock/views.py create mode 100644 tests/integration/__init__.py create mode 100644 tests/integration/test_views.py diff --git a/airlock/settings.py b/airlock/settings.py index 785682dd..448d1b95 100644 --- a/airlock/settings.py +++ b/airlock/settings.py @@ -60,6 +60,7 @@ def get_env_var(name): # Application definition INSTALLED_APPS = [ + "airlock", "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", diff --git a/airlock/templates/base.html b/airlock/templates/base.html new file mode 100644 index 00000000..7845d2af --- /dev/null +++ b/airlock/templates/base.html @@ -0,0 +1,10 @@ + + + + {% block metatitle %}Airlock{% endblock metatitle %} + + + + {% block body %}{% endblock %} + + diff --git a/airlock/templates/index.html b/airlock/templates/index.html new file mode 100644 index 00000000..2aa428a1 --- /dev/null +++ b/airlock/templates/index.html @@ -0,0 +1,6 @@ +{% extends "base.html" %} + +{% block body %} +

Airlock

+

Hello World

+{% endblock body %} diff --git a/airlock/urls.py b/airlock/urls.py index 3222a901..1d7a7f47 100644 --- a/airlock/urls.py +++ b/airlock/urls.py @@ -17,7 +17,10 @@ from django.contrib import admin from django.urls import path +import airlock.views + urlpatterns = [ + path("", airlock.views.index, name="home"), path("admin/", admin.site.urls), ] diff --git a/airlock/views.py b/airlock/views.py new file mode 100644 index 00000000..e1ce7b9b --- /dev/null +++ b/airlock/views.py @@ -0,0 +1,5 @@ +from django.template.response import TemplateResponse + + +def index(request): + return TemplateResponse(request, "index.html") diff --git a/tests/integration/__init__.py b/tests/integration/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/integration/test_views.py b/tests/integration/test_views.py new file mode 100644 index 00000000..87b10f93 --- /dev/null +++ b/tests/integration/test_views.py @@ -0,0 +1,3 @@ +def test_index(client): + response = client.get("/") + assert "Hello World" in response.rendered_content From 3178a332d3c1145c875668756df1f0eec18676a2 Mon Sep 17 00:00:00 2001 From: David Evans Date: Fri, 19 Jan 2024 09:23:37 +0000 Subject: [PATCH 2/4] Remove Django admin I don't anticipate us wanting to use it in this project. --- airlock/settings.py | 1 - airlock/urls.py | 2 -- tests/unit/test_urls.py | 2 +- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/airlock/settings.py b/airlock/settings.py index 448d1b95..df5b4f9e 100644 --- a/airlock/settings.py +++ b/airlock/settings.py @@ -61,7 +61,6 @@ def get_env_var(name): INSTALLED_APPS = [ "airlock", - "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", diff --git a/airlock/urls.py b/airlock/urls.py index 1d7a7f47..ebce7d3b 100644 --- a/airlock/urls.py +++ b/airlock/urls.py @@ -14,7 +14,6 @@ 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 import airlock.views @@ -22,5 +21,4 @@ urlpatterns = [ path("", airlock.views.index, name="home"), - path("admin/", admin.site.urls), ] diff --git a/tests/unit/test_urls.py b/tests/unit/test_urls.py index 2a96ee53..95e47a1a 100644 --- a/tests/unit/test_urls.py +++ b/tests/unit/test_urls.py @@ -3,4 +3,4 @@ # TODO: Stub test to get us started with def test_urls(): - assert resolve("/admin/") + assert resolve("/") From 4220cf4a192dfb2e795052b043d15ba4307f4f11 Mon Sep 17 00:00:00 2001 From: David Evans Date: Fri, 19 Jan 2024 09:26:24 +0000 Subject: [PATCH 3/4] Temporarily comment out apps which use the database So we can work on an intiial minimal deployment without worrying about migrations. --- airlock/settings.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/airlock/settings.py b/airlock/settings.py index df5b4f9e..8604e713 100644 --- a/airlock/settings.py +++ b/airlock/settings.py @@ -61,9 +61,9 @@ def get_env_var(name): INSTALLED_APPS = [ "airlock", - "django.contrib.auth", - "django.contrib.contenttypes", - "django.contrib.sessions", + # "django.contrib.auth", + # "django.contrib.contenttypes", + # "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", ] @@ -73,7 +73,7 @@ def get_env_var(name): "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", - "django.contrib.auth.middleware.AuthenticationMiddleware", + # "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", ] @@ -89,7 +89,7 @@ def get_env_var(name): "context_processors": [ "django.template.context_processors.debug", "django.template.context_processors.request", - "django.contrib.auth.context_processors.auth", + # "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", ], }, From 9edd16ce117e9b15ff95cfc8b23afcd565024713 Mon Sep 17 00:00:00 2001 From: David Evans Date: Fri, 19 Jan 2024 09:33:56 +0000 Subject: [PATCH 4/4] Configure ALLOWED_HOSTS Possibly we'll just want to hardcode this to `*` on the basis that we're capable of enforcing the right thing elsewhere in the chain, but I'm being conservative for now. --- airlock/settings.py | 2 +- dotenv-sample | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/airlock/settings.py b/airlock/settings.py index 8604e713..eef1f7ee 100644 --- a/airlock/settings.py +++ b/airlock/settings.py @@ -54,7 +54,7 @@ def get_env_var(name): # SECURITY WARNING: don't run with debug turned on in production! DEBUG = get_env_var("DJANGO_DEBUG") == "True" -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = get_env_var("DJANGO_ALLOWED_HOSTS").split(",") # Application definition diff --git a/dotenv-sample b/dotenv-sample index 802b1ce9..9bc08ebd 100644 --- a/dotenv-sample +++ b/dotenv-sample @@ -1,7 +1,7 @@ # Default environment variables for local development DJANGO_DEBUG=True - DJANGO_SECRET_KEY="INSECURE-if-you-use-this-in-prod-you-will-have-a-bad-day" +DJANGO_ALLOWED_HOSTS="*" AIRLOCK_WORK_DIR=workdir/