From 4f8302e74dda5eb49b7baac7fb2f595d4decbbb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Sun, 20 Sep 2015 12:09:10 +0200 Subject: [PATCH] =?UTF-8?q?Utilise=20argparse=20pour=20g=C3=A9rer=20argv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reset_pass.py | 52 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/reset_pass.py b/reset_pass.py index 1ec9d94..c26b19e 100755 --- a/reset_pass.py +++ b/reset_pass.py @@ -1,24 +1,46 @@ #!/bin/bash /usr/scripts/python.sh # -*- coding: utf-8 -*- +"""Script permettant de réinitialiser un mot de passe de compte +LDAP, et d'imprimer un ticket avec les informations pertinentes""" from __future__ import print_function + import sys +import argparse + from lc_ldap import crans_utils -from lc_ldap.shortcuts import lc_ldap_admin -from client import Ticket +from lc_ldap import shortcuts +from cransticket.client import Ticket -conn = lc_ldap_admin() +def reset_pass(args, ldap): + """Retourne l'adhérent cherché""" + _result = ldap.search(u'uid=%s' % (crans_utils.escape(args.login),), mode="w") -if len(sys.argv) != 2: - print("Veuillez taper UN login") - exit(1) -login = sys.argv[1] -adh = conn.search(u'uid=%s' % crans_utils.escape(login), mode='rw') -if not adh: - print("Adhérent introuvable") - exit(1) -adh = adh[0] + if not _result: + print("Adhérent introuvable") + sys.exit(1) -ticket = Ticket() -ticket.reset_password(adh) -ticket.print() + ticket = Ticket() + ticket.reset_password(_result[0]) + if args.test: + print("Mot de passe changé (on est en test, donc pas de ticket)") + else: + ticket.print() + +if __name__ == '__main__': + PARSER = argparse.ArgumentParser(description="Réinitialisation d'un mot de passe d'un compte.", add_help=False) + PARSER.add_argument('-h', '--help', help="Affiche ce message et quitte.", action="store_true") + PARSER.add_argument('--test', help="Se connecter à la base de test", action="store_true") + PARSER.add_argument('login', type=str, nargs="?", help="Le login du compte à modifier") + + ARGS = PARSER.parse_args() + + if ARGS.help: + PARSER.print_help() + sys.exit(0) + if ARGS.test: + LDAP = shortcuts.lc_ldap_test() + else: + LDAP = shortcuts.lc_ldap_admin() + + reset_pass(ARGS, LDAP)