From 92c837f7b5e76e560f47e1c22481e43a74051507 Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Fri, 27 Jun 2025 18:28:13 +0200 Subject: [PATCH] fix more tests Signed-off-by: Marc 'risson' Schmitt --- authentik/outposts/signals.py | 13 ++++++++----- authentik/outposts/tests/test_sa.py | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/authentik/outposts/signals.py b/authentik/outposts/signals.py index 75c874f9b8..be1d7296db 100644 --- a/authentik/outposts/signals.py +++ b/authentik/outposts/signals.py @@ -43,11 +43,13 @@ def outpost_pre_save(sender, instance: Outpost, **_): @receiver(m2m_changed, sender=Outpost.providers.through) -def outpost_m2m_changed(sender, instance: Provider, action: str, **_): +def outpost_m2m_changed(sender, instance: Outpost | Provider, action: str, **_): """Update outpost on m2m change, when providers are added or removed""" - if action in ["post_add", "post_remove", "post_clear"]: - if not isinstance(instance, OutpostModel): - return + if action not in ["post_add", "post_remove", "post_clear"]: + return + if isinstance(instance, Outpost): + outpost_send_update.send_with_options(args=(instance.pk,), rel_obj=instance) + elif isinstance(instance, OutpostModel): for outpost in instance.outpost_set.all(): outpost_send_update.send_with_options(args=(outpost.pk,), rel_obj=outpost) @@ -66,7 +68,8 @@ def outpost_related_post_save(sender, instance: OutpostServiceConnection | Outpo post_save.connect(outpost_related_post_save, sender=OutpostServiceConnection, weak=False) -post_save.connect(outpost_related_post_save, sender=OutpostModel, weak=False) +for subclass in OutpostModel.__subclasses__(): + post_save.connect(outpost_related_post_save, sender=subclass, weak=False) def outpost_reverse_related_post_save(sender, instance: CertificateKeyPair | Brand, **_): diff --git a/authentik/outposts/tests/test_sa.py b/authentik/outposts/tests/test_sa.py index 59238a2cf8..92ac083f6e 100644 --- a/authentik/outposts/tests/test_sa.py +++ b/authentik/outposts/tests/test_sa.py @@ -37,6 +37,7 @@ class OutpostTests(TestCase): # We add a provider, user should only have access to outpost and provider outpost.providers.add(provider) + provider.refresh_from_db() permissions = UserObjectPermission.objects.filter(user=outpost.user).order_by( "content_type__model" )