Utilise argparse pour gérer argv
This commit is contained in:
parent
ad6869f546
commit
4f8302e74d
1 changed files with 37 additions and 15 deletions
|
@ -1,24 +1,46 @@
|
||||||
#!/bin/bash /usr/scripts/python.sh
|
#!/bin/bash /usr/scripts/python.sh
|
||||||
# -*- coding: utf-8 -*-
|
# -*- 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
|
from __future__ import print_function
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
import argparse
|
||||||
|
|
||||||
from lc_ldap import crans_utils
|
from lc_ldap import crans_utils
|
||||||
from lc_ldap.shortcuts import lc_ldap_admin
|
from lc_ldap import shortcuts
|
||||||
from client import Ticket
|
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:
|
if not _result:
|
||||||
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")
|
print("Adhérent introuvable")
|
||||||
exit(1)
|
sys.exit(1)
|
||||||
adh = adh[0]
|
|
||||||
|
|
||||||
ticket = Ticket()
|
ticket = Ticket()
|
||||||
ticket.reset_password(adh)
|
ticket.reset_password(_result[0])
|
||||||
ticket.print()
|
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)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue