digitaleagenturnc/users/signals.py

43 lines
1.4 KiB
Python

from django.db.models.signals import post_save, pre_delete
from django.contrib.auth.models import User, Group
from django.dispatch import receiver
from .models import Profile, Agency, AgencyGroup
from django.contrib.auth.models import Permission
# SIGNALS FOR USER
@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.save()
@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
instance.profile.save()
# SIGNALS FOR GROUPS
'''
@receiver(post_save, sender=Group)
def create_group(sender, instance, created, **kwargs):
print("NEW GROUP SIGNAL")
if created:
AgencyGroup.objects.create(group=instance, agency=instance.agency)
@receiver(post_save, sender=Group)
def save_group(sender, instance, **kwargs):
print("GROUP SAVED SIGNAL")
#instance.group.save()
'''