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
|
||||
# -*- 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:
|
||||
if not _result:
|
||||
print("Adhérent introuvable")
|
||||
exit(1)
|
||||
adh = adh[0]
|
||||
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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue