Browse Source

nouveaux utilisateurs : mot de passe aléatoire

Élie Bouttier 7 years ago
parent
commit
68c27d6060
2 changed files with 5 additions and 6 deletions
  1. 3 5
      accounts/forms.py
  2. 2 1
      accounts/signals.py

+ 3 - 5
accounts/forms.py

@@ -21,9 +21,7 @@ class ProfileForm(ModelForm):
 class PasswordResetForm(AuthPasswordResetForm):
     def clean_email(self):
         email = self.cleaned_data['email']
-        try:
-            user = User.objects.get(email=email)
-        except User.DoesNotExist:
+        users = User.objects.filter(email__iexact=email)
+        if not users.exists():
             raise ValidationError('Aucun utilisateur connu avec cette adresse e-mail.')
-        else:
-            return email
+        return email

+ 2 - 1
accounts/signals.py

@@ -1,6 +1,7 @@
 from django.dispatch import receiver
 from django.db.models.signals import pre_save, post_save
 from django.template.defaultfilters import slugify
+from django.utils.crypto import get_random_string
 
 from .models import Profile
 from adhesions.models import User
@@ -9,7 +10,7 @@ from adhesions.models import User
 @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()
+        instance.set_password(get_random_string(length=32))
 
 
 @receiver(pre_save, sender=User, dispatch_uid='set_default_username')