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)