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: user_agency = User.objects.filter(profile__agency__pk=instance.agency.pk) if(len(user_agency)) == 1: Profile.objects.create(user=instance, agency=instance.agency) ''' Wenn ein neuer Nutzer angelegt wird und dies der erste der Agentur ist, erhält dieser automatisch alle verfügbaren Rechte! ''' 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() else: Profile.objects.create(user=instance, agency=instance.agency, parent=instance.parent) user_agency = User.objects.filter(profile__agency__pk=instance.agency.pk) tempuser.profile.func = 'external' tempuser.profile.parent=parent tempuser.profile.agency=agency tempuser.profile.user = user tempuser.save() @receiver(post_save, sender=User) def save_profile(sender, instance, **kwargs): instance.profile.save()