from django.db.models import Sum from apps.authorization.models import Role, UserRelations from django.db.models.signals import post_save, post_delete from django.dispatch import receiver # @receiver([post_save], sender=UserRelations) # def sync_role_permissions(sender, instance, **kwargs): # """ add role permissions to user relation permissions in is null """ # # # if _from_signal=True prevent from maximum recursion loop # if getattr(instance, '_from_signal', False): # return # # if instance.role: # permissions = instance.role.permissions.all() # if not instance.permissions.exists(): # instance.permissions.add(*permissions) # noqa # # instance._from_signal = True # instance.save()