from django.dispatch import receiver
from django.db.models.signals import pre_save, post_save
from django.contrib.auth.models import User

from .models import Profile


@receiver(pre_save, sender=User, dispatch_uid='set_unusable_password')
def set_unusable_password(sender, instance, **kwargs):
    if not instance.password:
        instance.set_unusable_password()


@receiver(post_save, sender=User, dispatch_uid='create_profile')
def create_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)