37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
from django.dispatch import receiver
|
|
from django.db.models.signals import post_save, pre_save
|
|
from allauth.account.models import EmailAddress
|
|
from django.contrib.auth.models import User
|
|
from .models import Profile
|
|
|
|
@receiver(post_save, sender=User)
|
|
def user_postsave(sender, instance, created, **kwargs):
|
|
user = instance
|
|
|
|
# add profile if user is created
|
|
if created:
|
|
Profile.objects.create(
|
|
user = user,
|
|
)
|
|
else:
|
|
# update allauth emailaddress if exists
|
|
try:
|
|
email_address = EmailAddress.objects.get_primary(user)
|
|
if email_address.email != user.email:
|
|
email_address.email = user.email
|
|
email_address.verified = False
|
|
email_address.save()
|
|
except:
|
|
# if allauth emailaddress doesn't exist create one
|
|
EmailAddress.objects.create(
|
|
user = user,
|
|
email = user.email,
|
|
primary = True,
|
|
verified = False
|
|
)
|
|
|
|
|
|
@receiver(pre_save, sender=User)
|
|
def user_presave(sender, instance, **kwargs):
|
|
if instance.username:
|
|
instance.username = instance.username.lower() |