diff --git a/sso/models.py b/sso/models.py index 22aaa77..388bad4 100644 --- a/sso/models.py +++ b/sso/models.py @@ -117,7 +117,15 @@ class SSOUser(models.Model): if created: profile, created = SSOUser.objects.get_or_create(user=instance) + @staticmethod + def update_service_groups(sender, instance, created, **kwargs): + if not created: + for acc in instance.serviceaccount_set.all(): + cls = acc.service.api_class + cls.update_groups(acc.service_uid, instance.groups.all()) + signals.post_save.connect(SSOUser.create_user_profile, sender=User) +signals.post_save.connect(SSOUser.update_service_groups, sender=User) class Service(models.Model): """