Add oidc capability

This commit is contained in:
Maximilian Friedersdorff 2024-06-28 15:04:51 +01:00
parent 935e57013d
commit 21bd04c879
8 changed files with 53 additions and 18 deletions

View file

@ -39,6 +39,7 @@ INSTALLED_APPS = [
"django.contrib.staticfiles", "django.contrib.staticfiles",
"django.contrib.humanize", "django.contrib.humanize",
"django_bootstrap5", "django_bootstrap5",
"oauth2_authcodeflow",
"reinheit.apps.brew", "reinheit.apps.brew",
"reinheit.apps.styles", "reinheit.apps.styles",
"reinheit.apps.ingredients", "reinheit.apps.ingredients",
@ -127,3 +128,8 @@ STATICFILES_DIRS = [BASE_DIR / "reinheit" / "static"]
# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field # https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
AUTHENTICATION_BACKENDS = [
"oauth2_authcodeflow.auth.AuthenticationBackend",
"django.contrib.auth.backends.ModelBackend",
]

View file

@ -4,4 +4,5 @@ from django.contrib import admin
urlpatterns = [ urlpatterns = [
path("admin/", admin.site.urls), path("admin/", admin.site.urls),
path("brews/", include(("reinheit.apps.brew.urls", "brew"), namespace="brews")), path("brews/", include(("reinheit.apps.brew.urls", "brew"), namespace="brews")),
path("oidc/", include("oauth2_authcodeflow.urls")),
] ]

View file

@ -27,7 +27,12 @@ class YeastAdditionInline(admin.TabularInline):
@admin.register(Brew) @admin.register(Brew)
class BrewAdmin(admin.ModelAdmin): class BrewAdmin(admin.ModelAdmin):
inlines = [MaltAdditionInline, FermentableAdditionInline, ChemicalAdditionInline, YeastAdditionInline] inlines = [
MaltAdditionInline,
FermentableAdditionInline,
ChemicalAdditionInline,
YeastAdditionInline,
]
list_display = ["name", "style", "pitch_date"] list_display = ["name", "style", "pitch_date"]
date_hierarchy = "pitch_date" date_hierarchy = "pitch_date"

View file

@ -92,9 +92,7 @@ class Migration(migrations.Migration):
("added", models.DateTimeField(null=True)), ("added", models.DateTimeField(null=True)),
( (
"brew", "brew",
models.ForeignKey( models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="brew.brew"),
on_delete=django.db.models.deletion.CASCADE, to="brew.brew"
),
), ),
], ],
options={ options={

View file

@ -22,9 +22,7 @@ class Migration(migrations.Migration):
migrations.AddField( migrations.AddField(
model_name="fermentableaddition", model_name="fermentableaddition",
name="brew", name="brew",
field=models.ForeignKey( field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="brew.brew"),
on_delete=django.db.models.deletion.CASCADE, to="brew.brew"
),
), ),
migrations.AddField( migrations.AddField(
model_name="fermentableaddition", model_name="fermentableaddition",
@ -37,9 +35,7 @@ class Migration(migrations.Migration):
migrations.AddField( migrations.AddField(
model_name="maltaddition", model_name="maltaddition",
name="brew", name="brew",
field=models.ForeignKey( field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="brew.brew"),
on_delete=django.db.models.deletion.CASCADE, to="brew.brew"
),
), ),
migrations.AddField( migrations.AddField(
model_name="maltaddition", model_name="maltaddition",
@ -52,9 +48,7 @@ class Migration(migrations.Migration):
migrations.AddField( migrations.AddField(
model_name="yeastaddition", model_name="yeastaddition",
name="brew", name="brew",
field=models.ForeignKey( field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to="brew.brew"),
on_delete=django.db.models.deletion.CASCADE, to="brew.brew"
),
), ),
migrations.AddField( migrations.AddField(
model_name="yeastaddition", model_name="yeastaddition",

View file

@ -1,3 +1,4 @@
django django
django-bootstrap5 django-bootstrap5
djlint djlint
django-oauth2-authcodeflow

View file

@ -1,21 +1,34 @@
# This file was autogenerated by uv via the following command: # This file was autogenerated by uv via the following command:
# uv pip compile requirements/base.in # uv pip compile ./requirements/base.in
asgiref==3.8.1 asgiref==3.8.1
# via django # via django
certifi==2024.6.2
# via requests
cffi==1.16.0
# via cryptography
charset-normalizer==3.3.2
# via requests
click==8.1.7 click==8.1.7
# via djlint # via djlint
colorama==0.4.6 colorama==0.4.6
# via djlint # via djlint
cryptography==42.0.8
# via python-jose
cssbeautifier==1.15.1 cssbeautifier==1.15.1
# via djlint # via djlint
django==5.0.6 django==5.0.6
# via # via
# -r requirements/base.in # -r ./requirements/base.in
# django-bootstrap5 # django-bootstrap5
# django-oauth2-authcodeflow
django-bootstrap5==24.2 django-bootstrap5==24.2
# via -r requirements/base.in # via -r ./requirements/base.in
django-oauth2-authcodeflow==1.1.0
# via -r ./requirements/base.in
djlint==1.34.1 djlint==1.34.1
# via -r requirements/base.in # via -r ./requirements/base.in
ecdsa==0.19.0
# via python-jose
editorconfig==0.12.4 editorconfig==0.12.4
# via # via
# cssbeautifier # cssbeautifier
@ -24,6 +37,8 @@ html-tag-names==0.1.2
# via djlint # via djlint
html-void-elements==0.1.0 html-void-elements==0.1.0
# via djlint # via djlint
idna==3.7
# via requests
jsbeautifier==1.15.1 jsbeautifier==1.15.1
# via # via
# cssbeautifier # cssbeautifier
@ -32,15 +47,30 @@ json5==0.9.25
# via djlint # via djlint
pathspec==0.12.1 pathspec==0.12.1
# via djlint # via djlint
pyasn1==0.6.0
# via
# python-jose
# rsa
pycparser==2.22
# via cffi
python-jose==3.3.0
# via django-oauth2-authcodeflow
pyyaml==6.0.1 pyyaml==6.0.1
# via djlint # via djlint
regex==2023.12.25 regex==2023.12.25
# via djlint # via djlint
requests==2.32.3
# via django-oauth2-authcodeflow
rsa==4.9
# via python-jose
six==1.16.0 six==1.16.0
# via # via
# cssbeautifier # cssbeautifier
# ecdsa
# jsbeautifier # jsbeautifier
sqlparse==0.5.0 sqlparse==0.5.0
# via django # via django
tqdm==4.66.4 tqdm==4.66.4
# via djlint # via djlint
urllib3==2.2.2
# via requests

View file

@ -7,7 +7,7 @@ import traceback
from django.core.wsgi import get_wsgi_application from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.production') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production")
app = get_wsgi_application() app = get_wsgi_application()
NUM_WORKERS = 1 NUM_WORKERS = 1