Commit a4739114 authored by Pierre-Elliott Bécue's avatar Pierre-Elliott Bécue

[chgpass] En cas d'utilisateur introuvable, fallback sur les users locaux

parent d5e1b8b5
......@@ -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()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment