Add suff drink booking tool with PIN auth

Self-service drink tab at /suff/ for festival attendees. Users log in
with username + 3-digit PIN stored in a separate User.pin field, so
staff/admin accounts can keep their strong password for /admin/ and
also use the drink tool with the same username. PINs for staff users
must be set from the admin panel via a dedicated "PIN setzen" view to
prevent account takeover by name collision.

Time-gated to the festival window (Thu–Sun in Berlin tz) with phases
before/booking/readonly/closed; in non-production mode the tool is
always in booking phase for local testing.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-14 12:00:56 +02:00
parent 1d35f0b9b9
commit 47d46e8e6f
16 changed files with 565 additions and 3 deletions
+7
View File
@@ -101,3 +101,10 @@ USE_TZ = True
STATIC_URL = "/static/"
AUTH_USER_MODEL = "gaehsnitz.User"
AUTHENTICATION_BACKENDS = [
"django.contrib.auth.backends.ModelBackend",
"gaehsnitz.auth_backends.PinBackend",
]
LOGIN_URL = "/suff/"
+1
View File
@@ -3,5 +3,6 @@ from django.urls import path, include
urlpatterns = [
path("admin/", admin.site.urls),
path("suff/", include(("gaehsnitz.suff_urls", "suff"))),
path("", include(("gaehsnitz.urls", "gaehsnitz"))),
]