From a4739114632b6b55a837d9d8b4acc92d70effe82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Fri, 9 May 2014 01:48:54 +0200 Subject: [PATCH] [chgpass] En cas d'utilisateur introuvable, fallback sur les users locaux --- gestion/chgpass.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gestion/chgpass.py b/gestion/chgpass.py index 368d0fc4..dbd1ba32 100755 --- a/gestion/chgpass.py +++ b/gestion/chgpass.py @@ -22,6 +22,7 @@ import argparse import gestion.affich_tools as affich_tools import lc_ldap.shortcuts import lc_ldap.attributs +import lc_ldap.objets import smtplib encoding = "UTF-8" @@ -136,7 +137,8 @@ def change_password(ldap, login=None, verbose=False, no_cracklib=False, **args): login = lc_ldap.crans_utils.escape(login) query = ldap.search(u"(uid=%s)" % login, mode="w") if not query: - affich_tools.cprint('Utilisateur introuvable', "rouge") + affich_tools.cprint('Utilisateur introuvable dans la base de données, modification de l\'utilisateur local.', "rouge") + sys.exit(2) with query[0] as user: # Test pour vérifier que l'utilisateur courant peut modifier le mdp de user try: @@ -162,8 +164,12 @@ def change_password(ldap, login=None, verbose=False, no_cracklib=False, **args): sys.exit(1) # On peut modifier le MDP + if isinstance(user, lc_ldap.objets.club): + prenom = "Club" + else: + prenom = user['prenom'][0] affich_tools.cprint("Changement du mot de passe de %s %s." % - (user['prenom'][0], user['nom'][0]), + (prenom, user['nom'][0]), "vert") # Règles du jeu @@ -240,7 +246,7 @@ if __name__ == "__main__": help="Permet de contourner les règles de choix du mot de passe" + "(réservé aux nounous).", action="store_true") - parser.add_argument('login', type=str, nargs="?", + parser.add_argument('login', type=str, nargs="?", help="L'utilisateur dont on veut changer le mot de passe.") args = parser.parse_args()