from django.db.models.signals import post_save, pre_delete from django.contrib.auth.models import User from django.dispatch import receiver from .models import Profile, Agency from django.contrib.auth.models import Permission @receiver(post_save, sender=User) def create_profile(sender, instance, created, **kwargs): if created: Profile.objects.create(user=instance, agency=instance.agency, parent=instance.parent) ''' Wenn ein neuer Nutzer angelegt wird und dies der erste der Agentur ist, erhält dieser automatisch alle verfügbaren Rechte! ''' user_agency = User.objects.filter(profile__agency__pk=instance.agency.pk) if len(user_agency) == 1: tempuser = user_agency[0] temprof = Profile for ele in temprof._meta.permissions: tempperm = Permission.objects.get(codename=ele[0]) tempuser.user_permissions.add(tempperm) tempuser.profile.func = 'lead' tempuser.profile.parent = tempuser tempuser.save() @receiver(post_save, sender=User) def save_profile(sender, instance, **kwargs): instance.profile.save()