Django: comment 'automatiser' lenvoie des login/mot de passe utilisateurs ?
Bonjour,
Je suis débutant en développement et en Django notamment.
J'ai développé un projet qui est en test et je commence à réfléchir à la mise en prod et notamment l'initialisation de la base de données et la création des utilisateurs.
Je ne sais pas trop quelle est l'approche la plus simple et efficace...
j'ai chercher sur google mais je n'ai rien trouvé à ce sujet...
Je vais avoir plus d'une trentaine de comptes utilisateurs à créer d'un coup, et j'ai donc écris un script que je lancerai sur la base de prod
outre la gestion du hashage du mot de passe (pour le moment, j'utilise un shell python pour utiliser la fonction make_password() tet créé un mot de passe valide) dans ce script, je me pose la question de savoir comment envoyer les login/mdp de façon automatiser à mes utilisateurs.
je n'ai pas vu d'option 'envoie identifiants par mail' dans l'interface admin de Django pourtant très complète
j’imagine donc qu'il faut que je créé une application ou au moins un script pour le gérer ?
d'avance merci pour vos commentaires, suggestions...
cordialement
Mot de passe mis à jour dans code ne fonctionne pas
Je comprends que la sécurisation des mots de passe est très sensible
mais je ne comprends pas comment on peut gérer des dizaines de comptes utilisateurs sans automatiser les envois par mail aux utilisateurs des paramètres de connexion
Or cela ne semble pas simple dans Django... en tout cas je n'ai pas trouvé grand chose dans mes recherches...
Voilà la procédure que j'imagine :
1. Je créer mes utilisateurs et les profils associés en lançant un script sql sur ma base de données Postgresql et je laisse volontairement le champ password NULL et initialise la variable pro_con = 0 dans le profile
2. Pour envoyer un email à l'utilisateur, j'utilise la mise à jour du champ pro_con 0 -> cela mets à jour la variable password de user (j'encode en utilisant make_password()) avec un mot de passe temporaire que l'utilisateur devra modifier et envoie l'email (et là j'ai bien le mot de passe en clair)
En dehors du fait que cela ne soit pas une bonne pratique (merci pour vos avis), celà ne fonctionne pas, je n'arrive pasà me connecter avec le mot de passe temporaire
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
def send_user_account(sender,instance,**kwargs):
if not instance._state.adding:
print ('this is an update')
print(instance.user)
for key,value in kwargs.items():
print(key,value)
user = User.objects.get(username=instance.user)
temporary_password = user.username
print(temporary_password)
user.password = make_password(temporary_password)
user.save()
print(user.password)
else:
print ('this is an insert')
pre_save.connect(send_user_account, sender=Profile) |
send_user_account n'est pas appelé par script
En fait, je mettais à jour un compte lambda (pas superuser) et testais la modification du mot de passe sur la connexion à l'interface admin...
donc çà fonctionne, maintenant, est-ce que c'est une bonne pratique ?
par ailleurs, si je peux bien créer mes utilisateurs en lançant un script, je constate que la mise à jour de la variable pro_con à l'aide d'un script ne permet pas d'envoyer l'email
cela doit être dû au signal que j'utilise ?