29 lines
825 B
Python
29 lines
825 B
Python
from django.db import transaction
|
|
from django.db.models.signals import post_save, pre_save
|
|
from django.dispatch import receiver
|
|
|
|
from engine.vibes_auth.models import User
|
|
from engine.vibes_auth.utils.emailing import send_verification_email_task
|
|
|
|
|
|
@receiver(post_save, sender=User)
|
|
def send_verification_email_signal(instance, created, **_kwargs):
|
|
if not created:
|
|
return
|
|
|
|
send_verification_email_task.delay(instance.pk)
|
|
|
|
|
|
@receiver(pre_save, sender=User)
|
|
def send_user_verification_email(instance, **_kwargs):
|
|
if not instance.pk:
|
|
return
|
|
|
|
try:
|
|
old = User.objects.get(pk=instance.pk)
|
|
except User.DoesNotExist:
|
|
return
|
|
|
|
if old.email != instance.email:
|
|
instance.is_active = False
|
|
transaction.on_commit(lambda: send_verification_email_task.delay(instance.pk))
|