From 1a7c6edc4dd7bb57f19e15c8204dad0a6c99acda Mon Sep 17 00:00:00 2001 From: Gabriel Detraz Date: Sat, 30 Jun 2018 02:53:19 +0200 Subject: [PATCH] =?UTF-8?q?Sync=20du=20pseudo=20et=20mailalias=20=C3=A0=20?= =?UTF-8?q?la=20creation=20de=20l'user?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- users/models.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/users/models.py b/users/models.py index f9445753..bc83b997 100644 --- a/users/models.py +++ b/users/models.py @@ -927,6 +927,12 @@ class User(RevMixin, FieldPermissionModelMixin, AbstractBaseUser, } self.__original_state = self.state + def clean(self, *args, **kwargs): + """Check if this pseudo is already used by any mailalias. + Better than raising an error in post-save and catching it""" + if MailAlias.objects.filter(valeur=self.pseudo).exclude(user=self): + raise ValidationError("Ce pseudo est déjà utilisé") + def __str__(self): return self.pseudo @@ -1049,9 +1055,11 @@ class Club(User): @receiver(post_save, sender=User) def user_post_save(**kwargs): """ Synchronisation post_save : envoie le mail de bienvenue si creation + Synchronise le pseudo, en créant un alias mail correspondant Synchronise le ldap""" is_created = kwargs['created'] user = kwargs['instance'] + mail_alias, created = MailAlias.objects.get_or_create(valeur=user.pseudo, user=user) if is_created: user.notif_inscription() user.state_sync()