crans_ticket/reset_pass.py
2015-09-20 12:09:50 +02:00

46 lines
1.4 KiB
Python
Executable file

#!/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 import shortcuts
from cransticket.client import Ticket
def reset_pass(args, ldap):
"""Retourne l'adhérent cherché"""
_result = ldap.search(u'uid=%s' % (crans_utils.escape(args.login),), mode="w")
if not _result:
print("Adhérent introuvable")
sys.exit(1)
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)