From ac0f6f55be34f92f490fffa29a049a44045d5234 Mon Sep 17 00:00:00 2001 From: Johannes Roos Date: Mon, 25 Nov 2024 17:19:21 +0100 Subject: [PATCH] fixed new client for new redirect uris... --- fakts/builders.py | 3 +++ fakts/migrations/0009_client_redirect_uris.py | 17 +++++++++++++++++ fakts/models.py | 1 + fakts/views.py | 7 +++++-- 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 fakts/migrations/0009_client_redirect_uris.py diff --git a/fakts/builders.py b/fakts/builders.py index 838258c..3bd52f8 100644 --- a/fakts/builders.py +++ b/fakts/builders.py @@ -54,6 +54,7 @@ def create_website_client( client_id=client_id, client_secret=client_secret, oauth2_client=oauth2_client, + redirect_uris=" ".join(config.redirect_uris), public=config.public, composition=composition, ) @@ -106,6 +107,7 @@ def create_desktop_client( client_id=client_id, client_secret=client_secret, oauth2_client=oauth2_client, + redirect_uris=" ".join(["http://127.0.0.1/", "http://127.0.0.1/callback"]), composition=composition ) @@ -164,6 +166,7 @@ def create_development_client( client_id=client_id, client_secret=client_secret, oauth2_client=oauth2_client, + redirect_uris="", public=False, composition=composition ) diff --git a/fakts/migrations/0009_client_redirect_uris.py b/fakts/migrations/0009_client_redirect_uris.py new file mode 100644 index 0000000..8cac100 --- /dev/null +++ b/fakts/migrations/0009_client_redirect_uris.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.5 on 2024-11-25 16:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("fakts", "0008_alter_redeemtoken_client"), + ] + + operations = [ + migrations.AddField( + model_name="client", + name="redirect_uris", + field=models.CharField(default=" ", max_length=1000), + ), + ] diff --git a/fakts/models.py b/fakts/models.py index b745723..de39da3 100644 --- a/fakts/models.py +++ b/fakts/models.py @@ -202,6 +202,7 @@ class Client(models.Model): default=enums.ClientKindChoices.DEVELOPMENT.value, help_text="The kind of transformation", ) + redirect_uris = models.CharField(max_length=1000, default=" ") public = models.BooleanField(default=False) token = models.CharField( default=uuid.uuid4, unique=True, max_length=10000 diff --git a/fakts/views.py b/fakts/views.py index 6e49b17..893388c 100644 --- a/fakts/views.py +++ b/fakts/views.py @@ -147,7 +147,7 @@ def get_context_data(self, **kwargs): release = models.Release.objects.filter(app=app, version=x.staging_manifest["version"]).first() if release: context["release"] = release - client = models.Client.objects.filter(release=release, kind=x.staging_kind, tenant=self.request.user).first() + client = models.Client.objects.filter(release=release, kind=x.staging_kind, tenant=self.request.user, redirect_uris=" ".join(x.staging_redirect_uris)).first() if client: context["client"] = client @@ -177,8 +177,11 @@ def form_valid(self, form): manifest = base_models.Manifest(**device_code.staging_manifest) + redirect_uris = " ".join(device_code.staging_redirect_uris), - client = models.Client.objects.filter(release__app__identifier=device_code.staging_manifest["identifier"], release__version=device_code.staging_manifest["version"], kind=device_code.staging_kind, tenant=self.request.user).first() + + + client = models.Client.objects.filter(release__app__identifier=device_code.staging_manifest["identifier"], release__version=device_code.staging_manifest["version"], kind=device_code.staging_kind, tenant=self.request.user, redirect_uris=redirect_uris).first() if not client: